[pypy-commit] extradoc extradoc: (tos9) english
fijal
noreply at buildbot.pypy.org
Wed Sep 9 14:42:18 CEST 2015
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: extradoc
Changeset: r5551:4ba135bb3c2b
Date: 2015-09-09 14:42 +0200
http://bitbucket.org/pypy/extradoc/changeset/4ba135bb3c2b/
Log: (tos9) english
diff --git a/blog/draft/warmup-improvements.rst b/blog/draft/warmup-improvements.rst
--- a/blog/draft/warmup-improvements.rst
+++ b/blog/draft/warmup-improvements.rst
@@ -7,15 +7,15 @@
To understand why we did that, let's look back in time - back when we
got the first working JIT prototype in 2009 we were focused exclusively
-on the peak performance with some consideration towards memory usage, but
+on achieving peak performance with some consideration towards memory usage, but
without serious consideration towards warmup time. This means we accumulated
quite a bit of technical debt over time that we're trying, with difficulty,
to address right now. This branch mostly does not affect the peak performance
- it should however help you with short-living scripts, like test runs.
-The branch does "one" thing - it changes the underlaying model of how operations
-are represented during the tracing and optimizations. Let's consider a simple
-loop like that::
+The branch does "one" thing - it changes the underlying model of how operations
+are represented during tracing and optimizations. Let's consider a simple
+loop like::
[i0, i1]
i2 = int_add(i0, i1)
@@ -27,10 +27,10 @@
The original representation would allocate a ``Box`` for each of ``i0`` - ``i4``
and then store those boxes in instances of ``ResOperation``. The list of such
operations would then go to the optimizer. Those lists are big - we usually
-remove ``90%`` of them during optimizations, but they can be couple thousand
-elements. Overall allocating those big lists takes a toll on warmup time,
+remove ``90%`` of them during optimizations, but they can be a couple thousand
+elements. Overall, allocating those big lists takes a toll on warmup time,
especially due to the GC pressure. The branch removes the existance of ``Box``
-completely, instead using link to ``ResOperation`` itself. So say in the above
+completely, instead using a link to ``ResOperation`` itself. So say in the above
example, ``i2`` would refer to its producer - ``i2 = int_add(i0, i1)`` with
arguments getting special treatment.
@@ -40,15 +40,16 @@
information about the boxes. Overall
we measured about 50% speed improvement in the optimizer, which reduces
the overall warmup time between 10% and 30%. The very
-`obvious warmup benchmark`_ got a speedup from 4.5s to 3.5s so almost
+`obvious warmup benchmark`_ got a speedup from 4.5s to 3.5s, almost
30% improvement. Obviously the speedups on benchmarks would vastly
depend on how much warmup time is there in those benchmarks. We observed
-annotation of pypy to decrease by about 30% and the overall translation
+annotation of pypy to decreasing by about 30% and the overall translation
time by about 7%, so your mileage may vary.
Of course, as usual with the large refactoring of a crucial piece of PyPy,
-there are expected to be bugs. We are going to wait for the default to stabilize
-and you should see warmup improvements in the next release. If you're not afraid
+there are expected to be bugs. We are going to wait for the default branch
+to stabilize
+so you should see warmup improvements in the next release. If you're not afraid
to try, `nightlies`_ will already have them.
.. _`obvious warmup benchmark`: https://bitbucket.org/pypy/benchmarks/src/fe2e89c0ae6846e3a8d4142106a4857e95f17da7/warmup/function_call2.py?at=default
More information about the pypy-commit
mailing list