Rev 2527: Changing Reader.get_next_str (which returns a Python String) in http://bzr.arbash-meinel.com/branches/bzr/0.17-dev/dirstate_pyrex

John Arbash Meinel john at arbash-meinel.com
Mon May 7 23:11:29 BST 2007


At http://bzr.arbash-meinel.com/branches/bzr/0.17-dev/dirstate_pyrex

------------------------------------------------------------
revno: 2527
revision-id: john at arbash-meinel.com-20070507221117-l6pjpggfs9p2dtwy
parent: john at arbash-meinel.com-20070507214233-czz6gaimsje4qka6
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: dirstate_pyrex
timestamp: Mon 2007-05-07 17:11:17 -0500
message:
  Changing Reader.get_next_str (which returns a Python String)
  into a c function saves a lot of time.
  Specifically it avoids a GetAttr call, and a PyObject_CallObject
  This drops the times down to:
  ...test__read_dirblocks_20k_tree_0_parents_c    OK      122ms/    2561ms
  ...test__read_dirblocks_20k_tree_0_parents_py   OK      235ms/    2606ms
  ...test__read_dirblocks_20k_tree_1_parent_c     OK      175ms/    2797ms
  ...test__read_dirblocks_20k_tree_1_parent_py    OK      358ms/    3014ms
  ...test__read_dirblocks_20k_tree_2_parents_c    OK      259ms/    2992ms
  ...test__read_dirblocks_20k_tree_2_parents_py   OK      498ms/    3232ms
  
  We are close to being 2x faster than the python implementation.
modified:
  bzrlib/compiled/dirstate_helpers.pyx dirstate_helpers.pyx-20070503201057-u425eni465q4idwn-3
-------------- next part --------------
=== modified file 'bzrlib/compiled/dirstate_helpers.pyx'
--- a/bzrlib/compiled/dirstate_helpers.pyx	2007-05-07 20:38:16 +0000
+++ b/bzrlib/compiled/dirstate_helpers.pyx	2007-05-07 22:11:17 +0000
@@ -245,7 +245,7 @@
         self.cur = self.cur + 1
         return next
 
-    def get_next_str(self):
+    cdef object get_next_str(self):
         """Get the next field as a Python string."""
         cdef int size
         cdef char *next



More information about the bazaar-commits mailing list