# Re: Article: Increasing the D Compiler Speed by Over 75%

```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.

That is,

(A - B)/A != (A - B)/B.

The LHS is relative to A and the RHS is relative to B.

So

(21.56 - 12.19)/21.56 = 9.37/21.56 = 43%

or

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 75%.
```

```
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)
```

```