On Sunday, 13 January 2013 at 15:49:13 UTC, Peter Alexander wrote:
On Sunday, 13 January 2013 at 14:01:28 UTC, bearophile wrote:
Safety on default and speed on request is one of the tenets of D language. And it's a good thing.

Not allocating a buffer for each permutation is premature optimization.

You may have convinced me. I'll need to think more about it.

FWIW, it is not a premature optimisation. On a simple benchmark I did, adding .dup to front() increased runtime by 3.5x on DMD with all optimisations. 3.5 is the difference between C and Javascript in the Computer Language Benchmarks Game.

http://benchmarksgame.alioth.debian.org/u32/which-programs-are-fastest.php

I do care about safety, but I also believe that performance is critically important to D's success. Performance on demands is good in theory, but if I'm writing high performance code then I want performance by default, and I don't want to have to fill my code with annotations and special flags/options.

I think we need a D mission statement that we can refer to, to settle these disputes. How much performance loss is acceptable in the name of safety by default?

You spend most of the time in the same piece of code. That one must be annotated and everything, but most code could be written in javascript running in a VM written in PHP that it would change much.

Plus, you probably here are benchmarking mostly the GC, which is known to be inefficient in D.

Reply via email to