On Sat, 10 Apr 2010 17:19:17 -0400, bearophile <bearophileh...@lycos.com>
wrote:
Few dynamic array benchmarks that can show you more differences between
C++ and D2.
Timings dmd, N=5_000_000, NLOOPS=15, T=double, seconds:
C++ v1: 0.67
C++ v1: 0.72
D v1: 6.47 (uses >1 GB RAM)
D v2: 0.76
D v3: 5.25
dmd v2.043, dmd -O -release -inline
g++ 4.4.1, -O3 -Wall -s
That is to be expected. The append function is not the most efficient
thing. It still must do a lot of work just to look up the valid length
and verify appending can be done, whereas the v2 "append" is a single
instruction!
The append function is good when you don't know what the length of an
array is, and you are appending a small number of elements, or another
array. I don't advise using it for one-at-a-time appending if you know
you have a large number of elements to append. A better method is to set
the length, and then write the data.
-Steve