From cbf3dd53b449995f3fa5fce89161985766cfe8cf Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Wed, 8 Oct 1997 15:23:02 +0000 Subject: [PATCH] Use better timer on the mac Open files in binary mode (Jack) --- Lib/profile.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/Lib/profile.py b/Lib/profile.py index 582bd8a7300..ae5182ad3dd 100755 --- a/Lib/profile.py +++ b/Lib/profile.py @@ -152,6 +152,11 @@ def __init__(self, timer=None): 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 @@ def get_time(self): # slow simulation of method to acquire time 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 @@ def trace_dispatch_i(self, frame, event, arg): 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 @@ def print_stats(self): 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()