On Thursday, 13 March 2014 at 13:47:13 UTC, Steven Schveighoffer
wrote:
On Thu, 13 Mar 2014 09:37:51 -0400, Dicebot <pub...@dicebot.lv>
wrote:
On Thursday, 13 March 2014 at 13:16:54 UTC, Daniel Murphy
wrote:
"Steven Schveighoffer" wrote in message
news:op.xcnu55j2eav7ka@stevens-macbook-pro.local...
> The worst breaking change in D2, by far, is the prevention
> > of
array stomping.
What is your use case(s), might I ask? Prevention of array
stomping, I thought, had a net positive effect on
performance, because it no longer has to lock the GC for
thread-local appends.
I would guess they're setting length to zero and appending to
re-use the memory.
Exactly. So far looks like upon transition to D2 almost all
arrays used in our code will need to be replaced with some
variation of Appender!T
I think you might find that it will run considerably faster in
that case. In the old mechanism of D1, the GC lock was used on
every append, and if you had multiple threads appending
simultaneously, they were contending with the single element
cache to look up block info. Appender only needs to look up GC
block info when it needs more memory from the GC.
We don't use threads.