Optimizing Immutable and Purity
Dave_Member at pathlink.com
Wed Dec 24 10:07:20 PST 2008
>>On a real program, how much faster is my code going to get, if I maximize
>>use of pure functions and immutable data? I don't know. I don't have any
>>experience with it on a large program.<
I was on a large project not too long ago which used some formal eval
questionaires to gauge quality (much of it subjective). Long story short,
the overall "quality" rating went up significantly after the only thing that
changed was a few passes through the bottlenecks to improve performance in
those areas. Say, 2% of the code. Slow areas in any program really bring
down the overall user opinion of said program I think.
So, since the bottlenecks usually come down to just a few lines of code, the
big advantage of the optimizations for immutable and pure to me would be
avoiding having to often "drop down" into asm., manually re-writing to
"hoist" duplicative code out of tight loops or experimenting with load ->
update -> store patterns to get the compiler to spit out the best code.
All this can be time-consuming and error-prone so I would think that for
some programs your work here would be very valuable, and save quite a bit of
development time and cost _if_ the developer took advantage of pure and
immutable, consistently, where applicable. Especially in libraries.
More information about the Digitalmars-d