4 ms·
There is no need to transition from unladen swallow since almost nobody was using it. It was a fork of cpython, and the speed improvements were so negligeable t
by cdavid 16y ago
There is no need to transition from unladen swallow since almost nobody was using it. It was a fork of cpython, and the speed improvements were so negligeable that I doubt anyone sane would try to use this without mastering the - heavy - technology behind.
I was actually quite shocked when unladen swallow was somehow almost accepted for python 3.2 at some point, given how bad the performance results were: if you add C++ + llvm and all the new infrastructure/complexity it brings, you rather have good numbers, not something like 10 % speed improvements which was the order of magnitude last time I checked.
It did bring useful code to python, though: in terms of benchmark code, but also proving that speeding up python while keeping cpython compatibility (vs just python compat) is actually pretty hard (which was expected, but they confirm the suspicion).
- rbanffy 16y ago> I was actually quite shocked when unladen swallow was somehow almost accepted for python 3.2 at some point, given how bad the performance results were Memory is getting cheaper. I was looking forward the GIL removal (at first), but I'll be happy with any multi-threading improvement. OTOH, when I really needed it, the multiprocessing module did the job nicely. And it also prevents some very hard to catch bugs.
- IgorPartola 16y agoI run most of my Python program on fairly low end boxes, so consuming 9MB per process vs 90 would be a pretty big deal. If you have RAM to burn, share :).
- rbanffy 16y agoThe rule is that next year, you'll be able to run twice as many processes as you do today for the same amount of server money. And, besides that, Unladen Swallow would most probably take 18 or 27 MB per process on your scenario. 10x more memory seems weird.
- IgorPartola 16y agoYes, I suppose you are right about the memory usage: http://www.python.org/dev/peps/pep-3146/#memory-usage http://www.python.org/dev/peps/pep-3146/#memory-usage. And of course Moore's law has been on target so far. However, next year I'll want to run more kinds of different processes, putting more projects on my servers and I'd rather conserve RAM as much as possible.
- ahi 16y agoIn my use case, large data processing, I would prefer slower processing in exchange for lower memory requirements. The more ram it eats the sooner my processes have to hit disk.
- cdavid 16y agoUnladen has never intended to remove the GIL - their primary goal was to keep compatibility with C extensions without even recompiling IIRC (google seems to rely a lot on python extension around their infrastructure), and removing the GIL will break many, many extensions: the only known way to remove the GIL without cause a huge slow down is to remove reference counting, which C extensions rely on, and also most C extensions rely on the fact they don't need to be reentrant.
- gthank 16y agoRemoving the GIL was one of the explicit goals as originally conceived, but was dropped when it was realized how difficult it would be (source: http://code.google.com/p/unladen-swallow/wiki/ProjectPlan#Global_Interpreter_Lock http://code.google.com/p/unladen-swallow/wiki/ProjectPlan#Gl...).
- wladimir 16y agoAgreed. I'm not waiting for another Java, either, When carelessly integrating a JIT there would be a big risk of long startup times and other memory-heavy behaviour. Of course, there are also examples of JIT that seem more lightweight, such as the javascript JITs.
- fuzzyman 16y agopypy has quicker start up than CPython and also has a JIT. They're working on interesting memory optimisations too.
- jnoller 16y agoThe PEP was/is accepted. The problem is all the resources with the knowledge to merge it have since been reassigned. It's still pending merge into py3k.
- ot 16y agoThat's not entirely accurate, the PEP is about merging it in a new branch called py3k-jit. AFAIK there are no plans of merging it in the main, vanilla, py3k.
- jnoller 16y agoLook at the header - 3.3 the intention was to accept the PEP, do the merge, and then ask for final approval for merge into Py3k. The intention on both sides was to always merge it into vanilla Py3k.
- ot 16y agoYes you are right, what I meant is that it will still need a "final approval", which I think will imply a more thorough discussion and a round of voting. The "merge plan" section states that, before that, all the jit-related patches will be confined in the py3k-jit branch
- jnoller 16y agoAnd you're right; final approval won't come because well, it ain't done.