Let's Remove the Global Interpreter Lock
11–20 of 326 posts
Re: Let's Remove the Global Interpreter Lock
#12 1. Big enough to need concurrency
2. Not big enough to require multiple boxes.
3. Running in a situation that can not spare the resources for multiprocessing.
4. You want to share memory instead of designing your workflow to handle messages or working off a queue.
#4 does sound appealing, but is it really worth the effort?Re: Let's Remove the Global Interpreter Lock
#13In the end I settled for C++ and QT with the native bzip2 library with a few modifications.
Re: Let's Remove the Global Interpreter Lock
#14Would this work with cpython extensions that were ported to PyPy?
They would run under GIL (I can't see CPython C API being thread-friendly unless gilectomy succeeds)
Or does it break the current support for porting cpython extensions?
Re: Let's Remove the Global Interpreter Lock
#15Do people here use pypy in production? What are the benefits?
It doesn't (or didn't) work when you need to rely on an extension that uses Python's C API. I haven't followed the scene in awhile so maybe that's changed. pypy's pip has so many libraries that I hardly notice, so maybe they solved that.
Unfortunately python is fundamentally slower than lua or JS, possibly due to the object model. Python traps all method calls, but even integer addition, comparisons, and so on are treated as metamethods. That's the case for Lua too, but e.g. it's absurdly easy to make a Python object have a custom length, whereas Lua didn't have a __len__ metamethod until after 5.1. I'm not sure it even works on LuaJIT either. Probably in the newer versions.
Re: Let's Remove the Global Interpreter Lock
#16Just curious: if they solve it in Python, would it be possible to solve it in Ruby too ?
You can learn more about concurrency in Ruby 3 at this wonderful blog post: http://olivierlacan.com/posts/concurrency-in-ruby-3-with-gui...
Re: Let's Remove the Global Interpreter Lock
#17Could someone who really wants to get rid of the GIL explain the appeal? As far as I understand, the only time it would be useful is when you have an application that is 1. Big enough to need concurrency 2. Not big enough to require multiple boxes. 3. Running in a situation that can not spare the resources for multiprocessing. 4. You want to share memory instead of designing your workflow to handle messages or workin…
Re: Let's Remove the Global Interpreter Lock
#18Could someone who really wants to get rid of the GIL explain the appeal? As far as I understand, the only time it would be useful is when you have an application that is 1. Big enough to need concurrency 2. Not big enough to require multiple boxes. 3. Running in a situation that can not spare the resources for multiprocessing. 4. You want to share memory instead of designing your workflow to handle messages or workin…
Re: Let's Remove the Global Interpreter Lock
#19Could someone who really wants to get rid of the GIL explain the appeal? As far as I understand, the only time it would be useful is when you have an application that is 1. Big enough to need concurrency 2. Not big enough to require multiple boxes. 3. Running in a situation that can not spare the resources for multiprocessing. 4. You want to share memory instead of designing your workflow to handle messages or workin…
Using multiprocessing is a pain to use, and it's slow.