Author brett.cannon
Recipients Trundle, benjamin.peterson, brett.cannon, eric.snow, haypo, merwok, ncoghlan
Date 2012-02-24.18:29:26
SpamBayes Score 4.68295e-07
Marked as misclassified No
Message-id <1330108167.3.0.42277165928.issue2377@psf.upfronthosting.co.za>
In-reply-to
Content
OK, I have now done as much C code as I'm going to do for the __import__() function. It has gotten bootstrapped importlib within 10% of normal_startup against default.

That leaves (possibly) rewriting BuiltinImporter in C and then just good old fashioned optimizations of the Python code.

I'm going to continue to use the normal_startup benchmark as my gold standard benchmark and importlib.test.benchmark just for iterative testing that a change made an impact (until there is another Python 3 benchmark that measures startup time using a real-world app). With that in mind and taking a PyPy style approach, that means I should focus on top-level, non-package imports first (28 of them), followed by builtins (14), submodules (4), packages (2), and then extensions (2). And if you don't want to do the math, there are 50 imports when starting Python, of which only 9 seem to follow (and include) site.
History
Date User Action Args
2012-02-24 18:29:27brett.cannonsetrecipients: + brett.cannon, ncoghlan, haypo, benjamin.peterson, merwok, Trundle, eric.snow
2012-02-24 18:29:27brett.cannonsetmessageid: <1330108167.3.0.42277165928.issue2377@psf.upfronthosting.co.za>
2012-02-24 18:29:26brett.cannonlinkissue2377 messages
2012-02-24 18:29:26brett.cannoncreate