Programming languages and performance
Laeeth Isharc via Digitalmars-d
digitalmars-d at puremagic.com
Mon Apr 13 19:45:49 PDT 2015
On Tuesday, 14 April 2015 at 02:44:15 UTC, Laeeth Isharc wrote:
> thanks for the links and colour, Walter and HST
>
>> But at the end of the day, the programmer has to know how to
>> write
>> cache-efficient code. No matter how the language/compiler
>> tries to be
>> smart and do the Right Thing(tm), poorly-laid out data is
>> poorly-laid
>> out data, and you're gonna incur cache misses all over the
>> place.
>> Cache-unfriendly algorithms are cache-unfriendly algorithms,
>> and no
>> smart language design / smart optimizer is gonna fix that for
>> you. You
>> have to know how to work with the modern cache hierarchies,
>> how to lay
>> out data for efficient access, and how to write cache-friendly
>> algorithms.
>
>> While Phobos is making good progress at being allocation-free,
>> it still
>> has a ways to go. And it doesn't help that the current D GC
>> isn't that
>> great, when you do have to allocate -- I've managed to get
>> 30-40%
>> performance improvements just by turning off the default
>> collection
>> schedule and triggering collections myself at more strategic
>> intervals.
>
> Would love to see an article sometime on efficient programming
> in D - both cache efficiency and how to make the GC your
> friend. (I get the basic idea of data driven design, but not
> yet the subtleties of cache efficient code and I am sure many
> other newcomers to D must be in a similar position).
>
> I found the same thing as you describe with a monster CSV
> import (files are daily, but data needs to be organized by
> symbol to be useful).
>
>> Not having to box things is a big win IMO, though. Boxing of
>> POD types
>> in Java/C# just screams "inefficient" to me... can you imagine
>> all that
>> extra, needless indirection wreaking havoc on the CPU cache
>> and cache
>> predictions?
>
> There was an interesting post on Lambda the ultimate by Mike
> Pall (sp? The Lua guy) in which he said certain eyesight
DESIGN not eyesight. Ipad spell check.
> decisions in Python meant much harder to ever make Python fast,
> and one of the pypy guys agreed with him. (It was more than
> just boxing).
>
> I am not in favour of extrapolating trends mindlessly, but I
> wonder what the world looks like In five or ten years should
> the gap between processor perf and memory latency continue to
> widen at similar rates given continued growth in data set sizes.
>
>
> Laeeth.
More information about the Digitalmars-d
mailing list