October 18, 2011 Re: d2 file input performance | ||||
---|---|---|---|---|
| ||||
Posted in reply to Christian Köstlin | Am 04.09.2011, 19:01 Uhr, schrieb Christian Köstlin <christian.koestlin@gmail.com>: > On 9/3/11 7:53 , dennis luehring wrote: >> Am 26.08.2011 19:43, schrieb Christian Köstlin: >>> Hi guys, >>> >>> >>> i started the thread: >>> http://stackoverflow.com/questions/7202710/fastest-way-of-reading-bytes-in-d2 >>> >>> on stackoverflow, because i ran into kind of a problem. >>> >>> i wanted to read data from a file (or even better from a stream, but >>> lets stay with file), byte-by-byte. the whole thing was part of my >>> protobuf implementation for d2, and there you have to look at each byte >>> to read out the varints. i was very proud of my implementation until i >>> benchmarked it first against java (ok ... i was a little slower than >>> java) and then against c++ (ok ... this was a complete different game). >>> >>> after some optimizing i got better, but was still way slower than c++. >>> so i started some small microbenchmarks regarding fileio: >>> https://github.com/gizmomogwai/performance in c++, java and d2. >>> >>> could you help me improve on the d2 performance? i am sure, that i am >>> missing something fundamental, because i thing it should be at least >>> possible be equal or better than java. >>> >>> thanks in advance >>> >>> christian >> >> i would change the test szenario a little bit >> >> 1. use a ramdisk - so stuff like location on disk, fragmentation, driver >> speed will reducued down to a little bit of noise >> >> 2. make your szenario much bigger >> >> 3. would be interesting to see for example to cumulated every 1000 >> benchmarks-steps or something like that - to see caching coming in etc. >> >> running 10.000 times >> >> time for 1. 1000 steps xyzw >> time for 2. 1000 steps xyzw >> time for 3. 1000 steps xyzw >> time for 4. 1000 steps xyzw >> overall time ... xyz >> ... > good point ... > will see if i can adapt the tests... > > cK -release -O -inline -noboundscheck is the options set for D2. In D1 -release included -noboundscheck. |
Copyright © 1999-2021 by the D Language Foundation