digitalmars.D - New benchmark results
- Walter (10/10) Oct 09 2004 Over in comp.lang.c++.moderated it was suggested that I'd castrated C++ ...
- Sean Kelly (26/36) Oct 09 2004 FWIW, I decided to run my own benchmarks using DMC (with STLPort) and
- Sean Kelly (10/13) Oct 09 2004 Well that turned out to be easier than I thought. I just replaced "map"...
- Ben Hinkle (5/18) Oct 09 2004 It would be interesting to also rehash the assoc array in the D code and...
- Walter (7/10) Oct 09 2004 And that's part of the point. Both the D and C++ versions are
- some where.com (6/6) Oct 10 2004 How about implement all the tests on the "The Great Computer Language Sh...
- Walter (3/9) Oct 10 2004 I agree, and it's being worked on.
Over in comp.lang.c++.moderated it was suggested that I'd castrated C++ or hobbled the DMC++ compiler in order to get the benchmark results in www.digitalmars.com/d/cppstrings.html. Since the conventional wisdom is that C++ using STL can't be beat for efficiency, I can understand their skepticism. I'd be skeptical too. So David Friedman has stepped in to compare his excellent gdc compiler with g++, where the compilers also share a common optimizer and code generator. As everyone can see on the updated web page, the results are comparable. D runs away with the win by any measure. Many thanks to David!
Oct 09 2004
Walter wrote:Over in comp.lang.c++.moderated it was suggested that I'd castrated C++ or hobbled the DMC++ compiler in order to get the benchmark results in www.digitalmars.com/d/cppstrings.html. Since the conventional wisdom is that C++ using STL can't be beat for efficiency, I can understand their skepticism. I'd be skeptical too. So David Friedman has stepped in to compare his excellent gdc compiler with g++, where the compilers also share a common optimizer and code generator. As everyone can see on the updated web page, the results are comparable. D runs away with the win by any measure.FWIW, I decided to run my own benchmarks using DMC (with STLPort) and DMD. I tried the default code plus a quick hack of the C++ version to dump everything in a stringstream before parsing. Here are my results: D: Execution time: 0.077 s Execution time: 0.071 s Execution time: 0.079 s CPP 1 (original): Execution time: 0.136 s Execution time: 0.125 s Execution time: 0.132 s CPP 2 (stringstream version): Execution time: 0.146 s Execution time: 0.155 s Execution time: 0.157 s This does seem a fair test of the code the average person is likely to write using each language. I know each could be optimized, but doing so would require some skill and/or nonstandard library code. A refcounting string and a hashmap would be the obvious improvements for C++, but while the hashmap will soon be part of the standard, there is a lot of contention over whether a refcounting version of basic_string could ever be standard-compliant. If I have the time I'll see about using STLPort's hashmap (I'm pretty sure it has one) to flatten the differences a bit. Sean
Oct 09 2004
Sean Kelly wrote:If I have the time I'll see about using STLPort's hashmap (I'm pretty sure it has one) to flatten the differences a bit.Well that turned out to be easier than I thought. I just replaced "map" with "hash_map" and included the appropriate header file. Here are the results: CPP 3 (with hash_map): Execution time: 0.102 s Execution time: 0.110 s Execution time: 0.102 s So D is still the clear winner. Sean
Oct 09 2004
"Sean Kelly" <sean f4.ca> wrote in message news:ck9qcp$1a5s$1 digitaldaemon.com...Sean Kelly wrote:It would be interesting to also rehash the assoc array in the D code and see if that speeds up anything. Also it would be neat to pre-allocate the hash table so that the array is faster to define, too.If I have the time I'll see about using STLPort's hashmap (I'm pretty sure it has one) to flatten the differences a bit.Well that turned out to be easier than I thought. I just replaced "map" with "hash_map" and included the appropriate header file. Here are the results: CPP 3 (with hash_map): Execution time: 0.102 s Execution time: 0.110 s Execution time: 0.102 s So D is still the clear winner. Sean
Oct 09 2004
"Sean Kelly" <sean f4.ca> wrote in message news:ck9q0a$1a0u$1 digitaldaemon.com...This does seem a fair test of the code the average person is likely to write using each language. I know each could be optimized, but doing so would require some skill and/or nonstandard library code.And that's part of the point. Both the D and C++ versions are straightforward implementations using the standard features of each language. Both languages offer the ability to supertune the source, etc., but I don't think that would produce any useful information as few are ever likely to write such code.
Oct 09 2004
How about implement all the tests on the "The Great Computer Language Shootout" web-page, and submit to: http://shootout.alioth.debian.org/ http://dada.perl.it/shootout/ (On the win32 page, it only shows D 0.42, without any acutal test.) D will then gain much more visibility.
Oct 10 2004
<some where.com> wrote in message news:ckbuo6$2q7v$1 digitaldaemon.com...How about implement all the tests on the "The Great Computer LanguageShootout"web-page, and submit to: http://shootout.alioth.debian.org/ http://dada.perl.it/shootout/ (On the win32 page, it only shows D 0.42, without any acutal test.) D will then gain much more visibility.I agree, and it's being worked on.
Oct 10 2004