Guido van Rossum | cbc6676 | 1996-08-23 15:48:14 +0000 | [diff] [blame] | 1 | In Win32, DLL's are "pre-linked" using a specified base address. |
| 2 | When the DLL is loaded, an attempt is made to place it at |
| 3 | that address. If that address is already in use, a new base address |
| 4 | is selected, and the DLL subject to fixups. Apparently, these |
| 5 | fixups are very slow, and significant performance gains can be |
| 6 | made by selecting a good base address. |
| 7 | |
Tim Peters | 2a799bf | 2002-12-16 20:18:38 +0000 | [diff] [blame] | 8 | This document is to allocate base addresses to core Python |
Guido van Rossum | cbc6676 | 1996-08-23 15:48:14 +0000 | [diff] [blame] | 9 | and Python .PYD files, to give a better change of optimal performance. |
| 10 | This base address is passed to the linker using the /BASE |
| 11 | command line switch. |
| 12 | |
| 13 | |
Mark Hammond | c2d272a | 2001-09-06 06:42:00 +0000 | [diff] [blame] | 14 | Python.exe/Pythonw.exe - 1d000000 - 1e000000 (-1) |
| 15 | Python.dll - 1e000000 - 1e100000 (-1) |
Guido van Rossum | cbc6676 | 1996-08-23 15:48:14 +0000 | [diff] [blame] | 16 | |
Mark Hammond | c2d272a | 2001-09-06 06:42:00 +0000 | [diff] [blame] | 17 | Standard Extension Modules 1e100000 - 1e200000 "" |
| 18 | - _symtable 1e100000 - 1e110000 |
Guido van Rossum | 9f3712c | 2000-03-28 20:37:15 +0000 | [diff] [blame] | 19 | - bsddb 1e180000 - 1e188000 "" |
Guido van Rossum | cbc6676 | 1996-08-23 15:48:14 +0000 | [diff] [blame] | 20 | - _tkinter 1e190000 - 1e1A0000 |
Guido van Rossum | 9f3712c | 2000-03-28 20:37:15 +0000 | [diff] [blame] | 21 | - parser 1e1A0000 - 1e1B0000 |
| 22 | - zlib 1e1B0000 - 1e1C0000 |
| 23 | - winreg 1e1C0000 - 1e1D0000 |
Guido van Rossum | a8ee4c3 | 2000-04-21 21:26:43 +0000 | [diff] [blame] | 24 | - _socket 1e1D0000 - 1e1E0000 |
| 25 | - _sre 1e1E0000 - 1e1F0000 |
| 26 | - mmap 1e1F0000 - 1e1FFFFF |
| 27 | |
| 28 | More standard extensions 1D100000 - 1e000000 |
| 29 | - pyexpat 1D100000 - 1D110000 |
| 30 | - select 1D110000 - 1D120000 |
Mark Hammond | c2d272a | 2001-09-06 06:42:00 +0000 | [diff] [blame] | 31 | - unicodedata 1D120000 - 1D160000 |
| 32 | - winsound 1D160000 - 1D170000 |
Tim Peters | b0ead4e | 2002-11-09 04:48:58 +0000 | [diff] [blame] | 33 | - bZ2 1D170000 - 1D180000 |
Tim Peters | 2a799bf | 2002-12-16 20:18:38 +0000 | [diff] [blame] | 34 | - datetime 1D180000 - 1D190000 |
Guido van Rossum | cbc6676 | 1996-08-23 15:48:14 +0000 | [diff] [blame] | 35 | |
| 36 | Other extension modules |
| 37 | - win32api 1e200000 - 1e220000 |
| 38 | - win32ras 1e220000 - 1e230000 |
| 39 | - win32lz 1e230000 - 1e240000 |
| 40 | - timer 1e240000 - 1e250000 |
| 41 | - mmapfile 1e250000 - 1e260000 |
Guido van Rossum | 9f3712c | 2000-03-28 20:37:15 +0000 | [diff] [blame] | 42 | - win32pipe 1e260000 - 1e270000 |
Guido van Rossum | cbc6676 | 1996-08-23 15:48:14 +0000 | [diff] [blame] | 43 | - avl 1e270000 - 1e270000 |
| 44 | - dbhash 1e280000 - 1e290000 |
| 45 | - win32net 1e290000 - 1e2A0000 |
Guido van Rossum | 9f3712c | 2000-03-28 20:37:15 +0000 | [diff] [blame] | 46 | - win32security 1e2A0000 - 1e2B0000 |
| 47 | - win32print 1e2B0000 - 1e2c0000 |
Mark Hammond | c2d272a | 2001-09-06 06:42:00 +0000 | [diff] [blame] | 48 | - <unused> 1e2d0000 - 1e2e0000 |
Guido van Rossum | 9f3712c | 2000-03-28 20:37:15 +0000 | [diff] [blame] | 49 | - win32gui 1e2e0000 - 1e2f0000 |
Guido van Rossum | cbc6676 | 1996-08-23 15:48:14 +0000 | [diff] [blame] | 50 | - _imaging 1e2f0000 - 1e300000 |
| 51 | - multiarray 1e300000 - 1e310000 |
Guido van Rossum | 9f3712c | 2000-03-28 20:37:15 +0000 | [diff] [blame] | 52 | - win32help 1e310000 - 1e320000 |
| 53 | - win32clipboard 1e320000 - 1e330000 |
Mark Hammond | c2d272a | 2001-09-06 06:42:00 +0000 | [diff] [blame] | 54 | - win2kras 1e330000 - 1e340000 |
| 55 | - pythoncom 1e340000 - 1e400000 |
| 56 | - win32ui 1e400000 - 1e500000 |
| 57 | - win32uiole 1e500000 - 1e600000 |
| 58 | - pywintypes 1e600000 - 1e700000 |
| 59 | - win32process 1e700000 - 1e800000 |
| 60 | - odbc 1e710000 - 1e720000 |
| 61 | - dbi 1e720000 - 1e730000 |
| 62 | - win32file 1e730000 - 1e740000 |
| 63 | - win32wnet 1e740000 - 1e750000 |
| 64 | - win32com.shell 1e750000 - 1e760000 |
| 65 | - win32com.internet 1e760000 - 1e770000 |
| 66 | - win32com.exchange 1e770000 - 1e780000 |
| 67 | - win32com.exchdapi 1e780000 - 1e790000 |
| 68 | - win32com.axscript 1e790000 - 1e7a0000 |
| 69 | - win32com.axdebug 1e7b0000 - 1e7c0000 |
| 70 | - win32com.adsi 1e7f0000 - 1e800000 |
| 71 | - win32event 1e810000 - 1e820000 |
| 72 | - win32evtlog 1e820000 - 1e830000 |
| 73 | - win32com.axcontrol 1e830000 - 1e840000 |
Guido van Rossum | cbc6676 | 1996-08-23 15:48:14 +0000 | [diff] [blame] | 74 | |
Guido van Rossum | 9f3712c | 2000-03-28 20:37:15 +0000 | [diff] [blame] | 75 | |