Fastest Way to Append Multiple Elements to an Array
Steven Schveighoffer via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Dec 19 07:25:46 PST 2014
On 12/18/14 5:27 PM, zeljkog wrote:
> On 18.12.14 14:50, Steven Schveighoffer wrote:
>> I wonder how your code compares to this:
>>
>> void append(T)(ref T[] arr, T[] args...)
>> {
>> arr ~= args;
>> }
>
> This is ~20% slower for ints, but it difference increases for bigger structs.
>
This is surprising to me. I would expect especially ints to be faster.
In reality, there is no difference between arr ~= args and arr.length +=
args.length, and then copying, it's just how you do the copying. Perhaps
it's the call to memcpy in the runtime that is slower than looping.
Did you compile both tests with the same command line parameters?
-Steve
More information about the Digitalmars-d-learn
mailing list