PyPy 2.6.0 released
morepypy.blogspot.com
morepypy.blogspot.com
- it appears PyPy performance improvements have begun to plateau [1]
- what's not measured is memory consumption in comparision to CPython. I've read anecdotal evidence that indicates PyPy is increase in memory usage [2]
- I also have not found a chart that depicts how compatible PyPy is vs CPython. If someone had a chart of this over time, that'd be great.
[1] http://speed.pypy.org/ [2] http://stackoverflow.com/questions/29000279/pypy-memory-usag...
It does appear that Pypy's performance is reaching some asymptotic limit, but there's always new avenues to investigate. e.g. The STM branch of Pypy removes the GIL, and allows code to scale nicely across cores[1]
[1]http://morepypy.blogspot.ch/2014/07/pypy-stm-first-interesti...
Memory use is very application dependent. I cannot improve on the answer given to the question on SO.
As far as compatibility goes, PyPy 2.6.0 uses the CPython 2.7.9 stdlib - pure python code is 100% compatible (barring bugs). Packages such as Pillow [3] have made sure they are PyPy friendly even where they use C code.
Numpy [4] is still a work-in-progress but much of it already works (we are implementing version 1.9.0 for now). The surface area is huge and very wrinkled, so it will take some time to finish all the corners.
Please try it out and let us know if your code doesn't run.
[1] http://pypy.org/tmdonate2.html
[2] https://cffi.readthedocs.org
Is it possible to use PyPy with py2exe or freeze so that I can distribute a Python application to someone so that they don't have to go and install PyPy to get performance benefits?
Most Common Lisp implementations still do it today: SBCL, Clozure CL, LispWorks, Allegro CL, CLISP, ...
Yeah, filling caches before dumping and keeping caches filled is also common...
More advanced implemenations could write incremental image dumps, based on other image dumps, ...
However, we've been doing a lot of work on stuff that's not taken into the account to the average, notably:
* external calls (IO, cffi, etc.)
* warmup speed
* STM
* tons of small things with various external libs
Now this is obviously our own fault that we don't have good enough benchmarks, but it definitely does not plateu for everyone. Notably we're trying to address places where PyPy does not outperform CPython by 7x - if you get 7x performance improvement you're likely very happy. In real world gains can be smaller and we would rather tackle those first.
We're working on memory impact too btw.
Compatibility is pretty much "done" (complain if it does not work for you)
I made a search engine[1] in python for one of my university course project. It had to process 30+ GB of html files.
I got a 2x improvement by using PyPy and completed indexing the dataset in 11 hours as compared to projected 22 hours. The only explanation I can think of is that my work was compute intensive and involved a lot of loops and accessing data in dictionaries.
A factor of two sounds great to me, especially if he didn't have to write Cython-specific code. That's a nice, easy win with a noticeable impact.
Looks like it's almost there (but this almost stretches over many years now), it just needs a little push.
Additionally, 3.3 has very little business value. All PyPy customers use Python 2 (the ones that can buy commercial support at least) and small performance improvements matter more to them.
Well yes, your customers will generally pay for the product that actually works and is useful now, and not the experimental and incomplete one that's several versions behind.
We are one of those paying customers (on occasion), for instance, and there is no benefit for us for work on PyPy 3 and potential large benefit from some of the upcoming work on PyPy 2. If people see benefit from PyPy 3 they should donate to motivate work on it.
Sorry if I offended you with my comment, it wasn't my intent.
I guess there is a way to view this in a different light: PyPy is a major Python implementation, that is used by a lot of people. There creates ~some~ responsibility.
Also, using "hate" word is precisely the problem -- it's not a first time I hear that from PyPy devs. I just hope that you hate only that aspect of the whole "Python 3 Saga", not the language itself.