[pypy-dev] PyPy 1.1 beta release
cumber at netspace.net.au
Wed Apr 22 05:24:02 CEST 2009
> Second, If A is 100% _slower_ than B, I take twice as much as your
> time; but in that case, you can't infer that B takes 100% less time -
> percentage sentences are not reversible like that; it takes 50% less
> time than B, so I'd say it's 50% faster. Analogously (or for the same
> reason), if from an amount of 100 €, you subtract 50% and you add the
> 50% of the result, you get 50 + 25 = 75 €.
I would have thought a natural reading of "A is 100% faster than B" is that A's
speed is B's speed + 100% (of B's speed), i.e. 2x B's speed. Meaning it
makes twice as much progress in the same amount of time, or equivalently
takes half the time to make the same amount of progress.
Slower/faster are comparisons of speed. 100% faster = +100% speed = 2x speed.
100% slower = -50% speed = 0.5x speed? That seems illogical.
I guess you could say X% faster/slower means -/+X% to the time. That leads to
concluding that 90% faster than 100m/s is not 190m/s, but 100m/0.1s = 1000m/s,
which is very counter-intuitive to me.
> At least, when you write "20 percent slower", you were referring to
> the 0.8x factor (but I still think you should have written "PyPy can
> be from 20% faster to 100% slower than CPython", to be absolutely
I would probably interpret "PyPy is 100% slower than CPython" to mean
that PyPy's runtime is CPython's runtime +100% of CPython's
runtime, i.e. half the speed, but only because the alternative interpretation
is that it's CPython's speed -100%, i.e. speed of 0, which doesn't make sense.
But that leaves "PyPy is 90% slower than CPython" meaning either it needs 1.9
times the runtime, or 10 times the runtime, which is a huge difference to leave
to the assumption that the reader interprets "slower" the same way as the
I think the original formulation in terms of speed is clear (but said the
wrong thing). Saying something like "PyPy takes 0.8-2x the time CPython takes
to run the same code" is even clearer. Using "slower" and "faster" will get
misinterpreted unless you actually define how you're using them.
-- Ben Mellor
More information about the Pypy-dev