]> granicus.if.org Git - python/commitdiff
Use better timer on the mac
authorGuido van Rossum <guido@python.org>
Wed, 8 Oct 1997 15:23:02 +0000 (15:23 +0000)
committerGuido van Rossum <guido@python.org>
Wed, 8 Oct 1997 15:23:02 +0000 (15:23 +0000)
Open files in binary mode
(Jack)

Lib/profile.py

index 582bd8a7300143b738c8fdc8120b3eec6048f669..ae5182ad3dd349e139ca68278fabc66329b282ca 100755 (executable)
@@ -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()