The Managed Runtime Initiative
Posted Sep 6, 2010 23:13 UTC (Mon) by nix
In reply to: The Managed Runtime Initiative
Parent article: The Managed Runtime Initiative
since Python uses standard reference counting, it is not efficient even in the short term view, because copying a pointer to the stack causes a heap mutation, even to pass a parameter to a procedure. That's why trying to support multithreading gave a 2x slowdown.
Oh no, there are much more appalling reasons why Python's multithreading is awful. The GIL acquisition macros were never designed with multiple CPUs in mind: on a one-thread-of-execution machine (what we used to call 'one CPU'), it all works fine, but if there's more than one, they race with each other and often end up bouncing ownership back and forth and both blocked for astounding periods of time. There's an awesome presentation
on the subject, strongly recommended.
to post comments)