On Apr 10, 2005, at 11:22 AM, Michael Hudson wrote:
Bob Ippolito <[EMAIL PROTECTED]> writes:
Is there a good reason to *not* call PyEval_InitThreads when using a threaded Python?
Well, it depends how expensive ones OS's locking primitives are, I think. There were some numbers posted to the twisted list recently that showed it didn't make a whole lot of difference on some platform or other... I don't have the knowledge or the courage to make that call.
Sounds like it would just be easier to implicitly call it during Py_Initialize some day.
That might indeed be simpler.
Here's the numbers. It looks like something changed between python 2.2 and 2.3 that made calling PyEval_InitThreads a lot less expensive. So, it doesn't seem to make a whole lot of difference on recent versions of Python.
Three test programs:
${PYTHON} -c 'import pystone, time; print pystone.pystones(200000)'
${PYTHON} -c 'import thread, pystone, time; print pystone.pystones(200000)'
${PYTHON} -c 'import thread, pystone, time; thread.start_new_thread(lambda: time.sleep(10000), ()); print pystone.pystones(200000)'
All tests run using the same copy of pystone.
System 1: RH73, dual 3GHz Xeon [GCC 2.96 20000731 (Red Hat Linux 7.3 2.96-110)] -------- Python 1.5.2 (#1, Apr 3 2002, 18:16:26)
(8.15, 24540) (8.28, 24155) (12.78, 15649)
Python 2.2.2 (#1, Jul 23 2003, 13:47:48)
(6.32, 31646) (6.27, 31898) (11.1, 18018)
Python 2.4.1 (#1, Apr 4 2005, 17:19:27)
(4.60, 43478) (4.61, 43384) (4.74, 42194)
System 2, FC3/64, dual 2.4GHz athlon 64. [GCC 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)] -------- Python 2.3.4 (#1, Oct 26 2004, 16:45:38)
(3.84, 52083) (3.80, 52632) (3.98, 50251)
Python 2.4.1 (#1, Apr 10 2005, 15:47:53)
(3.09, 64725) (3.08, 64935) (3.26, 61350)
Python 2.4.1 (#1, Apr 1 2005, 16:45:07) *compiled in 32 bit mode*
(3.35, 59701) (3.42, 58480) (3.57, 56022)
_______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com