| In Win32, DLL's are "pre-linked" using a specified base address. |
| When the DLL is loaded, an attempt is made to place it at |
| that address. If that address is already in use, a new base address |
| is selected, and the DLL subject to fixups. Apparently, these |
| fixups are very slow, and significant performance gains can be |
| made by selecting a good base address. |
| |
| This document is to allocate base addresses to core Python |
| and Python .PYD files, to give a better change of optimal performance. |
| This base address is passed to the linker using the /BASE |
| command line switch. |
| |
| |
| |
| Python.dll - 1e100000 - 1e180000 (-1) |
| Standard Extension Modules 1e180000 - 1e200000 "" |
| - bsddb 1e180000 - 1e188000 "" |
| - _tkinter 1e190000 - 1e1A0000 |
| - parser 1e1A0000 - 1e1B0000 |
| - zlib 1e1B0000 - 1e1C0000 |
| - winreg 1e1C0000 - 1e1D0000 |
| - _socket 1e1D0000 - 1e1E0000 |
| - _sre 1e1E0000 - 1e1F0000 |
| - mmap 1e1F0000 - 1e1FFFFF |
| |
| More standard extensions 1D100000 - 1e000000 |
| - pyexpat 1D100000 - 1D110000 |
| - select 1D110000 - 1D120000 |
| - unicodedata 1D120000 - 1D130000 |
| - winsound 1D130000 - 1D140000 |
| |
| Other extension modules |
| - win32api 1e200000 - 1e220000 |
| - win32ras 1e220000 - 1e230000 |
| - win32lz 1e230000 - 1e240000 |
| - timer 1e240000 - 1e250000 |
| - mmapfile 1e250000 - 1e260000 |
| - win32pipe 1e260000 - 1e270000 |
| - avl 1e270000 - 1e270000 |
| - dbhash 1e280000 - 1e290000 |
| - win32net 1e290000 - 1e2A0000 |
| - win32security 1e2A0000 - 1e2B0000 |
| - win32print 1e2B0000 - 1e2c0000 |
| - <nspi is dead too??> 1e2d0000 - 1e2e0000 |
| - win32gui 1e2e0000 - 1e2f0000 |
| - _imaging 1e2f0000 - 1e300000 |
| - multiarray 1e300000 - 1e310000 |
| - win32help 1e310000 - 1e320000 |
| - win32clipboard 1e320000 - 1e330000 |
| |
| PythonWin |
| win32ui 1e400000 - 1e500000 |
| |