diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2012-04-29 01:01:20 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2012-04-29 01:01:20 (GMT) |
commit | fe98e2fc8391607fc1cae235a49bbafc65a822f0 (patch) | |
tree | e00cb1f63634a8361ebd60c3a496a163e5d66c59 /Lib/profile.py | |
parent | 47620a661128ce91f46f01fb46e1326880365e75 (diff) | |
download | cpython-fe98e2fc8391607fc1cae235a49bbafc65a822f0.zip cpython-fe98e2fc8391607fc1cae235a49bbafc65a822f0.tar.gz cpython-fe98e2fc8391607fc1cae235a49bbafc65a822f0.tar.bz2 |
Issue #14428: Use the new time.perf_counter() and time.process_time() functions
* Replace "time.clock on windows, or time.time" with time.perf_counter()
* profile module: only use time.process_time() instead of trying different
functions providing the process time
* timeit module: use time.perf_counter() by default, time.time() and
time.clock() can still be used using --time and --clock options
* pybench program: use time.perf_counter() by default, add support for
the new time.process_time() and time.perf_counter() functions, but stay
backward compatible. Use also time.get_clock_info() to display information
of the timer.
Diffstat (limited to 'Lib/profile.py')
-rwxr-xr-x | Lib/profile.py | 36 |
1 files changed, 2 insertions, 34 deletions
diff --git a/Lib/profile.py b/Lib/profile.py index 297e32d..743e77d 100755 --- a/Lib/profile.py +++ b/Lib/profile.py @@ -83,26 +83,6 @@ def runctx(statement, globals, locals, filename=None, sort=-1): else: return prof.print_stats(sort) -if hasattr(os, "times"): - def _get_time_times(timer=os.times): - t = timer() - return t[0] + t[1] - -# Using getrusage(3) is better than clock(3) if available: -# on some systems (e.g. FreeBSD), getrusage has a higher resolution -# Furthermore, on a POSIX system, returns microseconds, which -# wrap around after 36min. -_has_res = 0 -try: - import resource - resgetrusage = lambda: resource.getrusage(resource.RUSAGE_SELF) - def _get_time_resource(timer=resgetrusage): - t = timer() - return t[0] + t[1] - _has_res = 1 -except ImportError: - pass - class Profile: """Profiler class. @@ -155,20 +135,8 @@ class Profile: self.bias = bias # Materialize in local dict for lookup speed. if not timer: - if _has_res: - self.timer = resgetrusage - self.dispatcher = self.trace_dispatch - self.get_time = _get_time_resource - elif hasattr(time, 'clock'): - self.timer = self.get_time = time.clock - self.dispatcher = self.trace_dispatch_i - elif hasattr(os, 'times'): - self.timer = os.times - self.dispatcher = self.trace_dispatch - self.get_time = _get_time_times - else: - self.timer = self.get_time = time.time - self.dispatcher = self.trace_dispatch_i + self.timer = self.get_time = time.process_time + self.dispatcher = self.trace_dispatch_i else: self.timer = timer t = self.timer() # test out timer function |