[Python-checkins] peps: PEP 418: time.process_time() falls back on other clock instead of falling

victor.stinner python-checkins at python.org
Fri Apr 13 02:17:45 CEST 2012


http://hg.python.org/peps/rev/f3202262d285
changeset: 4238:f3202262d285
user: Victor Stinner <victor.stinner at gmail.com>
date: Fri Apr 13 01:21:00 2012 +0200
summary:
 PEP 418: time.process_time() falls back on other clock instead of falling
files:
 pep-0418.txt | 43 ++++++++++++++++++++++++++-------------
 1 files changed, 29 insertions(+), 14 deletions(-)
diff --git a/pep-0418.txt b/pep-0418.txt
--- a/pep-0418.txt
+++ b/pep-0418.txt
@@ -205,27 +205,42 @@
 point of the returned value is undefined, so that only the difference
 between the results of consecutive calls is valid.
 
-Pseudo-code::
+Pseudo-code [#pseudo]_::
 
 if os.name == 'nt':
 def process_time():
 handle = win32process.GetCurrentProcess()
 process_times = win32process.GetProcessTimes(handle)
 return (process_times['UserTime'] + process_times['KernelTime']) * 1e-7
- elif (hasattr(time, 'clock_gettime')
- and hasattr(time, 'CLOCK_PROCESS_CPUTIME_ID')):
+ else:
 def process_time():
- return time.clock_gettime(time.CLOCK_PROCESS_CPUTIME_ID)
- else:
- try:
- import resource
- except ImportError:
- def process_time():
- return _time.clock()
- else:
- def process_time():
- usage = resource.getrusage(resource.RUSAGE_SELF)
- return usage[0] + usage[1]
+ if process_time.use_process_cputime:
+ try:
+ return time.clock_gettime(time.CLOCK_PROCESS_CPUTIME_ID)
+ except OSError:
+ process_time.use_process_cputime = False
+ if process_time.use_getrusage:
+ if process_time.getrusage is None:
+ try:
+ import resource
+ except ImportError:
+ process_time.use_getrusage = False
+ else:
+ def getrusage():
+ usage = resource.getrusage(resource.RUSAGE_SELF)
+ return usage[0] + usage[1]
+ process_time.getrusage = getrusage
+ if process_time.use_getrusage:
+ try:
+ return process_time.getrusage()
+ except OSError:
+ process_time.use_getrusage = False
+ return _time.clock()
+ process_time.use_process_cputime = (
+ hasattr(time, 'clock_gettime')
+ and hasattr(time, 'CLOCK_PROCESS_CPUTIME_ID'))
+ process_time.use_getrusage = True
+ process_time.getrusage = None
 
 
 Existing functions
-- 
Repository URL: http://hg.python.org/peps


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /