dmd makes D appear slow
Shachar Shemesh via Digitalmars-d
digitalmars-d at puremagic.com
Sat May 30 11:38:01 PDT 2015
On 30/05/15 03:57, Steven Schveighoffer wrote:
> I saw the slide from Liran that shows your compiler requirements :) I
> can see why it's important to you.
Then you misunderstood Liran's slides.
Our compile resources problem isn't with GDC. It's with DMD. Single
object compilation requires more RAM than most developers machines have,
resulting in a complicated "rsync to AWS, run script there, compile,
fetch results" cycle that adds quite a while to the compilation time.
Conversly, our problem with GDC is that IT !@$#%&?!@# PRODUCES ASSEMBLY
THAT DOES NOT MATCH THE SOURCE.
I have not seen LDC myself, but according to Liran, situation there is
even worse. The compiler simply does not finish compilation without
crashing.
>
> But compiled code outlives the compiler execution. It's the wart that
> persists.
So does algorithmic code that, due to a compiler bugs, produces an
assembly that does not implement the correct algorithm.
When doing RAID parity calculation, it is imperative that the correct
bit gets to the correct location with the correct value. If that doesn't
happen, compilation speed is the least of your problems.
Like Liran said in the lecture, we are currently faster than all of our
competition. Still, in a correctly functioning storage system, the RAID
part needs to take considerable amount of the total processing time
under load (say, 30%). If we're losing x3 speed because we don't have
compiler optimizations, the system, as a whole, is losing about half of
its performance.
> But I don't see how speed of compiler should sacrifice runtime performance.
Our plan was to compile with DMD during the development stage, and then
switch to GDC for code intended for deployment. This plan simply cannot
work if each time we try and make that switch, Liran has to spend two
months, each time yanking a different developer from the work said
developer needs to be doing, in order to figure out which line of source
gets compiled incorrectly.
>
> -Steve
Shachar
More information about the Digitalmars-d
mailing list