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.
8
This document is to allocate base addresses to core Python
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
14
Python.exe/Pythonw.exe - 1d000000 - 1e000000 (-1)
15
Python.dll - 1e000000 - 1e100000 (-1)
17
Standard Extension Modules 1e100000 - 1e200000 ""
18
- _symtable 1e100000 - 1e110000 pyd removed in 2.4
19
- bsddb 1e180000 - 1e188000 pyd removed in 3.0
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
28
More 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
38
Other 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