-# vi: encoding=utf-8 ts=8 sts=4 sw=4 et
-
-import time
-import resource
-
-class Time:
- def __init__(self):
- x = resource.getrusage(resource.RUSAGE_CHILDREN)
- self.user_time = x[0]
- self.sys_time = x[1]
- self.non_io_faults = x[6]
- self.io_faults = x[7]
- self.time = time.time()
-
- def sub(self, x):
- self.user_time -= x.user_time
- self.sys_time -= x.sys_time
- self.non_io_faults -= x.non_io_faults
- self.io_faults -= x.io_faults
- self.time -= x.time
-
- def format(self):
- return "user:%.2fs sys:%.2fs real:%.2fs (faults io:%d non-io:%d)" % \
- (self.user_time, self.sys_time, self.time, self.io_faults,
- self.non_io_faults)
-
-class Timer:
- def __init__(self):
- self.starts = []
-
- def start(self):
- self.starts.append(Time())
-
- def stop(self):
- tmp = Time()
- tmp.sub(self.starts.pop())
- return tmp.format()
-
-t = Timer()
-
-def start():
- t.start()
-
-def stop():
- return t.stop()