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 |
|
---|
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
|
---|
11 | command line switch.
|
---|
12 |
|
---|
13 |
|
---|
14 | Python.exe/Pythonw.exe - 1d000000 - 1e000000 (-1)
|
---|
15 | Python.dll - 1e000000 - 1e100000 (-1)
|
---|
16 |
|
---|
17 | Standard 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 |
|
---|
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
|
---|
37 |
|
---|
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
|
---|
76 |
|
---|
77 |
|
---|