foreach

Christopher Wright dhasenan at gmail.com
Sun Nov 23 06:26:48 PST 2008


Bill Baxter wrote:
> On Sun, Nov 23, 2008 at 3:25 PM, Jarrett Billingsley
> <jarrett.billingsley at gmail.com> wrote:
>> On Sat, Nov 22, 2008 at 11:40 PM, Sam S E <eisenstat.aa at sympatioco.ca> wrote:
>>> Does foreach use delegates? Isn't that unnecessary overhead?
>>> --Sam
>> It does use delegates, for iterating over most types.  When iterating
>> over arrays, the compiler turns it into a sort of for loop instead.
>>
>> Is it unnecessary overhead?  It's not always as fast as it could be,
>> but unless someone can figure out some other way of implementing it,
>> it's pretty much the best we can get.
>>
>> How about iterator objects, like in C++ or Java?  Are they unnecessary
>> overhead?  ;)
> 
> How does delegate overhead compare to the stack thread context switch
> overhead in the new Fibers in druntime?
> 
> --bb

~32 instructions per switch and 4KB allocated for fibers, versus about 2 
instructions and no allocation for delegates.



More information about the Digitalmars-d mailing list