On Thursday, 25 July 2013 at 21:27:47 UTC, Walter Bright wrote:
On 7/25/2013 11:49 AM, Dmitry S wrote:
I am also confused by the numbers. What I see at the end of
the article is
"21.56 seconds, and the latest development version does it in
12.19", which is
really a 43% improvement. (Which is really great too.)
21.56/12.19 is 1.77, i.e. a >75% improvement in speed.
A reduction in time would be the reciprocal of that.
Actually, it is a 43% speed improvement. 0.43*21.56 = 9.27s
So if it is 43% faster, it means it's reduced the time by 9.27s
or, 21.56 - 9.27 = 12.28 seconds total.
Now, if we started at 12.28 seconds and it jumped to 21.56 then
it would be 21.56/12.19 = 1.77 ==> 77% longer.
21.56/12.19 != 12.19/21.56.
The order matters.
To make it obvious. Suppose the running time is 20 seconds. You
optimize it, it is 100% **faster**(= 1.0*20 = 20s seconds), then
it takes 0 seconds(20 - 20).
Suppose the running time is 20 seconds, you screw it up, it takes
40 seconds, now it is 100% slower(1.0*20 = 20, and 20 + 20 = 40).
In both cases there is a difference of 20 seconds BUT they mean
very different things.
A 20% increase is not calculated the same as a 20% decrease.
(A - B)/A != (A - B)/B.
The LHS is relative to A and the RHS is relative to B.
(21.56 - 12.19)/21.56 = 9.37/21.56 = 43%
1 - 12.19/21.56 = 1 - 0.57 = 0.43
To make the numbers simple,
20 second original, 10 second new.
How much faster is the new version? it is 10 seconds faster, or
in percent, 1 - 10/20 = 0.5% (BUT if we started with 10 seconds
then it would be increase of 100%)
The numbers are very close to the original, but not very close to
Basically you are calculating the percentage as if you slowed
down the program... but it is not the same.
Another example will suffice:
Suppose you have 1000$. You lose 10% of it, or 100$. You now have
900$. You gain 10% of it, or 90$. You now have 990$! (Where did
the 10$ go?)
This is why the stock market and economy is much worse than 2007
even though the numbers look the same. Easier: Suppose you have
1000$ loose 99% then gain 99%, you have only (1000*0.01)*1.99 =
10*1.99 = 19.9... no where near your original amount. (Even
though the DIJA isn't a percentage this issue does creep into the
calculation due to inflation and other factors)