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

Reply via email to