On Tuesday, 6 June 2017 at 12:07:28 UTC, Steven Schveighoffer wrote:
On 6/6/17 6:36 AM, Stanislav Blinov wrote:
On Tuesday, 6 June 2017 at 09:57:31 UTC, Steven Schveighoffer wrote:

No, 2 allocations instead of N.

Oh, I misunderstood you. You mean two blocks total, for scanned and non-scanned data. This could indeed work for cases when more than two
arrays are needed. Still, it's one extra allocation.


True. But O(2) is better than O(N) :)

-Steve

Heh, this isn't malloc. We could end up in a situation when even one allocation is slower than N, depending on when they happen :)

Actually, separate blocks might be a decent choice: there's another problem with sharing blocks for different data in that finalizers can't be run. So such a function would either not support types with finalizers at all, or would have to allocate separate blocks for such types anyway. Don't know, need to actually implement and measure if it's even worth the trouble.

Reply via email to