Issue 995019: Ensure -single_module on Mac OS X (original) (raw)

Created on 2004-07-21 06:19 by bbum, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Messages (10)
msg21725 - (view) Author: Bill Bumgarner (bbum) Date: 2004-07-21 06:19
When building Python (and disutils based extensions) on Mac OS X, Python should ensure that the -single_module flag is being passed to the linker. This will ensure that any given .so, .dylib, or framework is linked as a single module. This will vastly reduce the startup times of python, reduce the load times of modules, and shave a bit of a performance hit off the top at runtime. This should also be applicable to the modules built by distutils.
msg21726 - (view) Author: Bob Ippolito (bob.ippolito) * (Python committer) Date: 2004-07-21 06:29
Logged In: YES user_id=139309 [I'm closing 995023, because bbum filed first] distutils extensions can not use -single_module because they are bundles, not dylibs. Frameworks and dylibs are synonymous, of course.
msg21727 - (view) Author: Bill Bumgarner (bbum) Date: 2004-07-21 06:35
Logged In: YES user_id=103811 This is not applicable to the distutils modules as they are built now; only applicable to Python.framework (and like builds).
msg21728 - (view) Author: Sjoerd Mullender (sjoerd) * (Python committer) Date: 2004-07-21 06:57
Logged In: YES user_id=43607 Is this related to bug 799088?
msg21729 - (view) Author: Bob Ippolito (bob.ippolito) * (Python committer) Date: 2004-07-21 08:25
Logged In: YES user_id=139309 Not in the least.
msg21730 - (view) Author: Jack Jansen (jackjansen) * (Python committer) Date: 2004-07-21 09:21
Logged In: YES user_id=45365 Could either of you come up with a patch? Also, how would I measure any improvement, "time python -c pass" or are there other things that are influenced as well?
msg21731 - (view) Author: Bob Ippolito (bob.ippolito) * (Python committer) Date: 2004-07-21 09:50
Logged In: YES user_id=139309 time python -c pass is probably sufficient.. I guess the patch is to line 114 of Makefile.pre.in.. should change from: OTHER_LIBTOOL_OPT = -prebind -seg1addr 0x10000000 to OTHER_LIBTOOL_OPT = -prebind -seg1addr 0xCFC00000 -single_module Note I picked an arbitrary, probably unused, seg1addr. 0x10000000 is *NOT* correct! It's in the Application Address Range!!!! See: http://developer.apple.com/documentation/Performance/Conceptual/ LaunchTime/index.html
msg21732 - (view) Author: Jack Jansen (jackjansen) * (Python committer) Date: 2004-07-22 21:09
Logged In: YES user_id=45365 Am I doing something wrong? I see absolutely no difference in runtime with this option: I get 0.15 seconds realtime (0.08 user time, system time variable) both with the new OTHER_LIBTOOL_OPT and without it. (This is on a 933Mhz G4 iBook running 10.3.4). I've been trying this with 2.4a1+. What sort of speedups are you guys seeing?
msg21733 - (view) Author: Ronald Oussoren (ronaldoussoren) * (Python committer) Date: 2006-06-25 21:23
Logged In: YES user_id=580910 Is this still relevant?
msg66152 - (view) Author: Ronald Oussoren (ronaldoussoren) * (Python committer) Date: 2008-05-03 09:36
Closing as this doesn't seem really useful anyway and nobody responded to my question if the issue is still relevant.
History
Date User Action Args
2022-04-11 14:56:05 admin set github: 40607
2008-05-03 09:36:03 ronaldoussoren set status: open -> closedresolution: wont fixmessages: +
2004-07-21 06:19:37 bbum create