RFC: startup time - again
John Arbash Meinel
john at arbash-meinel.com
Tue Sep 9 22:33:26 BST 2008
-----BEGIN PGP SIGNED MESSAGE-----
John Arbash Meinel wrote:
> Andrew Bennetts wrote:
>> I'd love to quantify this more though.
> Just to pimp some code I wrote a long time ago, there is still 'bzr
> --profile-imports CMD' available. It hooks into __import__ and
> re.compile as those were the big things I saw at the time. Also,
> re.compile support is broken in python2.5 because they changed the code
> I'm attaching a run of 'bzr --profile-imports st --no-plugins' on a
> bzr.dev tree on win32. (It takes ~500ms on this machine.) (I also had to
> update profile_imports to use time.clock on win32, because time.time()
> only has a 16ms resolution.)
> Notice that:
> 1) import bzrlib itself is ~100ms.
> 52ms spent in bzrlib.osutils.get_user_encoding()
> 18ms spent loading win32utils, 8ms ctypes
> 13ms loading trace, 12ms logging
> 5ms loading sha
> 43ms spent loading ConfigObj.
> 23ms loading 'compiler'
> 2) 69ms loading "bzrlib.directory_service"
> 69ms because it brings in Branch, which brings in
> 66ms RepostoryFormatPackDevelopment
> 44ms bzrlib.repofmt.knit_repo
> ... 17ms loading urllib because of 12.6ms in socket
> 3) 45.6ms loading "bzrlib.builtins"
> 29ms bringing in bzrdir, 16ms bringing in lockdir
> Lazy importing can make it tricky to track it down, because things don't
> get loaded quite as 'linearly'.
As a comparison, I'm attaching the same "bzr status" in a bzr.dev tree on Linux.
Comparing the import times:
1) 100ms => 41.6ms import bzrlib
43ms => 24ms to import 'bzrlib.config'
52ms => 13ms for get_user_encoding
2) 45.6ms => 28ms bzrlib.builtins
3) 69.0ms => 26.9ms bzrlib.directory_services
I would say the relative values are still about the same. Just that the
*total* time is cut in half. Some of the specific "this is worse than that"
also changes, but only slightly.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
-----END PGP SIGNATURE-----
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
More information about the bazaar