Commit cbf3dd53 authored by Guido van Rossum's avatar Guido van Rossum

Use better timer on the mac

Open files in binary mode
(Jack)
parent 45ac47c0
......@@ -152,6 +152,11 @@ class Profile:
if hasattr(os, 'times'):
self.timer = os.times
self.dispatcher = self.trace_dispatch
elif os.name == 'mac':
import MacOS
self.timer = MacOS.GetTicks
self.dispatcher = self.trace_dispatch_mac
self.get_time = self.get_time_mac
else:
self.timer = time.time
self.dispatcher = self.trace_dispatch_i
......@@ -175,6 +180,8 @@ class Profile:
t = reduce(lambda x,y: x+y, t, 0)
return t
def get_time_mac(self):
return self.timer()/60.0
# Heavily optimized dispatch routine for os.times() timer
......@@ -202,6 +209,16 @@ class Profile:
else:
self.t = self.timer() - t # put back unrecorded delta
return
# Dispatch routine for macintosh (timer returns time in ticks of 1/60th second)
def trace_dispatch_mac(self, frame, event, arg):
t = self.timer()/60.0 - self.t # - 1 # Integer calibration constant
if self.dispatch[event](frame,t):
self.t = self.timer()/60.0
else:
self.t = self.timer()/60.0 - t # put back unrecorded delta
return
# SLOW generic dispatch rountine for timer returning lists of numbers
......@@ -338,7 +355,7 @@ class Profile:
print_stats()
def dump_stats(self, file):
f = open(file, 'w')
f = open(file, 'wb')
self.create_stats()
marshal.dump(self.stats, f)
f.close()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment