Functional vs simple code
ixid
nuaccount at gmail.com
Tue Oct 2 13:48:43 PDT 2012
Without optimization the range and algorithm method takes about
10 times as long as the simple code below it, with no array
bounds checking and optimization it takes six times as long. Why
is the difference so huge? I'd expect a moderate overhead but
that's a big difference.
module main;
import std.stdio, std.algorithm, std.range, std.datetime;
enum MAX = 10_000_000UL;
void main() {
StopWatch sw;
sw.start;
auto sum1 = MAX.iota.map!(x => x * x).reduce!"a + b";
sw.peek.msecs.writeln("msecs");
sum1.writeln;
sw.start;
ulong sum2 = 0;
foreach(i;0..MAX)
sum2 += i * i;
sw.peek.msecs.writeln("msecs");
sum2.writeln;
}
More information about the Digitalmars-d-learn
mailing list