[Python-Dev] New and Improved Import Hooks
Moore, Paul
Paul.Moore@atosorigin.com
Wed, 4 Dec 2002 15:06:51 -0000
This is a multi-part message in MIME format.
------_=_NextPart_001_01C29BA6.C61AC446
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
From: Just van Rossum [mailto:just@letterror.com]
> I think this is more or less the same as iu.py,
> except that there's no need for a "shadowpath"
Thinking further, what is the advantage of your code
over iu.py, if this is true? Performance? Do you have
figures?
Paul.
PS I attach a small test script I used to get a feel
for the performance of Jim's patch. Unzip this file,
then do
cd test
zip -0r ../test0 *
zip -9r ../test9 *
Create a copy of the standard library as Lib, and do
cd Lib
zip -0r ../stdlib0 *
zip -9r ../stdlib9 *
Then run test.py.
Figures for me, with CVS + Jim's patch, on a 450MHz
Athlon with 256M RAM running Windows 2000, were:
Lib [[['Lib\\email']]]: 0.309
stdlib0.zip [[['stdlib0.zip\\email']]]: 0.866
stdlib9.zip [[['stdlib9.zip\\email']]]: 1.154
test [[test\testCR.pyc]]: 0.344
test0.zip [[test0.zip\testCR.py]]: 0.204
test9.zip [[test9.zip\testCR.py]]: 0.348
So import from zip is noticeably slower than directory
imports on big zips, but *faster* on small ones.
Compressed zipfiles are slower than uncompressed.
------_=_NextPart_001_01C29BA6.C61AC446
Content-Type: application/x-zip-compressed;
name="test.zip"
Content-Transfer-Encoding: base64
Content-Description: test.zip
Content-Disposition: attachment;
filename="test.zip"
UEsDBAoAAAAAAF2lgy0AAAAAAAAAAAAAAAAFABEAdGVzdC9VVA0AB1IX7T0A9Os9URftPVBLAwQU
AAIACAA4l4MtKBXJLB8AAAAiAAAADgARAHRlc3QvdGVzdENSLnB5VVQNAAes/uw9APTrPVEX7T1L
SU1TKEktLtHQtOJVAIKCosy8EgUlzzywqHOQEi8AUEsDBBQAAgAIACaXgy2Voha5IwAAACYAAAAQ
ABEAdGVzdC90ZXN0Q1JMRi5weVVUDQAHiP7sPQD06z1SF+09S0lNUyhJLS7R0LTi5VIAgoKizLwS
BSXPPLCwc5CPmxIvFwBQSwMEFAACAAgAMZeDLd8DWIcfAAAAIgAAAA4AEQB0ZXN0L3Rlc3RMRi5w
eVVUDQAHnv7sPQD06z1TF+09S0lNUyhJLS7R0LTiUgCCgqLMvBIFJc88sKiPmxIXAFBLAwQUAAIA
CABGl4MtIqMenSAAAAAjAAAADwARAHRlc3QvdGVzdFBZQy5weVVUDQAHxP7sPQD06z1UF+09S0lN
UyhJLS7R0LTiUgCCgqLMvBIFJc88sGhApLMSFwBQSwMEFAACAAgAhKSDLcEhu3RtAAAA6gAAABAA
EQB0ZXN0L3Rlc3RQWUMucHljVVQNAAe4Fe09APTrPVUX7T2z/sTLdejfG9tkBihghNLFvEAihYGh
hYEhCshgZAjWYAKKoKhjBqnjZABLu3sAFUPU+BVzAUnPPIWS1OKSgEhnDZB6NKKYH0iA5GOgivQK
KotZoGIgs4uZwLb4aYA5MBk0Hn7jQGrtwRpAjgYAUEsDBBQAAgAIAAelgy02cU8gcAEAAEcEAAAH
ABEAdGVzdC5weVVUDQAHrhbtPQD06z1pF+09tVLLasMwELwb/A9bg7ENqUnppQ3kFMgph9JbMUYo
sdyIyJaRVEry9dVafgUnh0Ir8EOzu7MzK/GqkcqAPmvfI/ZNGmqOsEYgxd9slfue7xWsBMU0M5Us
vgTTcbLyPbCrlApqWjHgdVvTxdMTO49JuHjp8h7WENnECGhdjMhF8H0HSdPCqTZUGf3NzTGOCImm
XLgKJqYNM6zJXUqv3doYLHU+SiUrMBz1OuMHIQ+n3qFh2lghscX6dtemO35UZsnb2gEcm2YW76R0
XVhFubhCLIcZJ8hxfIrWnyx+Wi6nVhUTkhZxS5DMYGTp+7PDKAkencj7HhrFawNBqCHLQp3nKwhf
0ucygBDQ/sJJTkk7PEIWyJ9M54TP3w8KWTfvM2i3vZF1A3z72PxiqI4muYnvtsmd/HsR2/ufjsL1
tWdRcsGmZ4EubQb6jIMd3wcLCLQp7BVephfejNvXdtuPYHrNZzQYxEL8Diy4mXMMV8D3fgBQSwEC
FgsKAAAAAABdpYMtAAAAAAAAAAAAAAAABQAJAAAAAAAAABAA/0EAAAAAdGVzdC9VVAUAB1IX7T1Q
SwECFgsUAAIACAA4l4MtKBXJLB8AAAAiAAAADgAJAAAAAAABACAAtoE0AAAAdGVzdC90ZXN0Q1Iu
cHlVVAUAB6z+7D1QSwECFgsUAAIACAAml4MtlaIWuSMAAAAmAAAAEAAJAAAAAAABACAAtoGQAAAA
dGVzdC90ZXN0Q1JMRi5weVVUBQAHiP7sPVBLAQIWCxQAAgAIADGXgy3fA1iHHwAAACIAAAAOAAkA
AAAAAAEAIAC2gfIAAAB0ZXN0L3Rlc3RMRi5weVVUBQAHnv7sPVBLAQIWCxQAAgAIAEaXgy0iox6d
IAAAACMAAAAPAAkAAAAAAAEAIAC2gU4BAAB0ZXN0L3Rlc3RQWUMucHlVVAUAB8T+7D1QSwECFgsU
AAIACACEpIMtwSG7dG0AAADqAAAAEAAJAAAAAAAAACAAtoGsAQAAdGVzdC90ZXN0UFlDLnB5Y1VU
BQAHuBXtPVBLAQIWCxQAAgAIAAelgy02cU8gcAEAAEcEAAAHAAkAAAAAAAEAIAC2gVgCAAB0ZXN0
LnB5VVQFAAeuFu09UEsFBgAAAAAHAAcA2AEAAP4DAAAAAA==
------_=_NextPart_001_01C29BA6.C61AC446--