downs wrote:
Daniel Keep wrote:
Michel Fortin wrote:
On 2009-04-27 10:51:22 -0400, Frits van Bommel
<fvbom...@remwovexcapss.nl> said:
I edited this code to work with ldc (D1) + Tango, and saw the Direct
and opApply cases generate identical code (inc, cmp, jne, with the
loop counter in a register) [1], so they're equally fast (modulo
process scheduling randomness).
Thank you for your timings. I think it shows my point: that by prefering
ranges over opApply we're just optimising around a deficiency in DMD's
optimizer.
Not true. Here's an excellent reason to use ranges over opApply: you
can't define zip with opApply. Because opApply uses inversion of
control, you can't use more than one without bringing threads into the
equation.
Your point stands, of course, but I just wanted to mention that
stackthreads/fibers work too and have far less overhead.
First, don't they have LOTS of memory overhead, because each fiber needs
a new/separate stack?
Second, isn't the overhead still relatively high compared to simple
function calls?