On Sun, 03 Mar 2013 22:58:07 -0500, deadalnix <deadal...@gmail.com> wrote:

On Monday, 4 March 2013 at 03:20:57 UTC, jerro wrote:
Maybe it is time to look at the python implementation and see why it is faster.

It isn't faster:

$ time python3 test.py

real    0m14.217s
user    0m14.209s
sys     0m0.004s
$ gdmd -O -inline -release -noboundscheck test
$ time ./test

real    0m5.323s
user    0m5.312s
sys     0m0.008s

D code here uses the same string as the python code, not the one in cvk012c's D code.

Using noboundcheck isn't fair as you give up on safety, so you are not equivalent to python either.

In this type of test, there is no danger with using noboundscheck. It's a very fair switch to use, D is just able to do it where python is not. A sufficiently smart compiler could eliminate the bounds check for this code, since it can be proven not to go out of bounds (in fact, a simple run without the noboundscheck proves it in very deterministic code like this).

-Steve

Reply via email to