Timing the CPU time of a python program?

后端 未结 2 836
伪装坚强ぢ
伪装坚强ぢ 2020-12-06 16:45

I would like to time a snippet of my code, and I would like just the CPU execution time (ignoring operating system processes etc).

I\'ve tried time.clock(), it appea

2条回答
  •  佛祖请我去吃肉
    2020-12-06 17:21

    It sounds like you are looking for a way to time the process-wide execution time, the best thing you can do is use timeit.default_timer() which offers the most precise time.clock() or time.time() function available on the current platform, but it is system-wide time, meaning that other proceses can interfere with your measurments.

    Here's the info from the docs of timeit.default_timer():

    Define a default timer, in a platform-specific manner. On Windows, time.clock() has microsecond granularity, but time.time()‘s granularity is 1/60th of a second. On Unix, time.clock() has 1/100th of a second granularity, and time.time() is much more precise. On either platform, default_timer() measures wall clock time, not the CPU time. This means that other processes running on the same computer may interfere with the timing.

    You should try testing c-modules which might have access to different timing apis.


    The best possible way to do this is by using time.process_time() which is only available in python 3.3 and up, here's the info from the docs:

    Return the value (in fractional seconds) of the sum of the system and user CPU time of the current process. It does not include time elapsed during sleep. It is process-wide by definition. The reference point of the returned value is undefined, so that only the difference between the results of consecutive calls is valid.

提交回复
热议问题