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