http://d.puremagic.com/issues/show_bug.cgi?id=3463
--- Comment #45 from Leandro Lucarella <llu...@gmail.com> 2010-07-24 20:08:30 PDT --- Well, I've made a little benchmark for the patch. I'm using the voronoi[1] benchmark, since I think is a good GC benchmark, because it exercises the GC a lot, but it does real work with the data (unlike the typical "tree" benchmark). I find it particularly interesting too because it seems to have a lot of false positives, making the runtime very bound to the addresses returned by mmap(), as shown in the post[2] mentioned earlier in this comments. This benchmarks confirmed that the high variance in runtime presented by this test is due to false positives. [1] http://codepad.org/xGDCS3KO [2] http://www.llucax.com.ar/blog/blog/post/-7a56a111 I've compared 3 binaries, one compiled without any of this patches (voronoi-dnp-tnp, i.e. Dmd Not Precise, to be honest, this is DMD 1.062 distributed by DigitalMars), one compiled with a patched DMD, but unpatched Tango to see if the PointerMaps created by the compiler has any effect on performance (voronoi-dp-tnp) and one compiled with both patched DMD and Tango (voronoi-dp-tp). Patched DMD is svn r580 (D1 branch), Tango is svn trunk r5505, and the patches are not the latest ones, are the previous (sorry, I was working on this before you came up with the new patch, I'll try the new patch when I have some time). Anyway, here are the result: $ for i in {1..10}; do /usr/bin/time -f%e ./voronoi-dnp-tnp -n 30000; done 3.88 3.71 4.28 3.89 3.78 3.63 3.81 4.36 3.82 3.89 min = 3.63 mean = 3.905, std = 0.234343053378 max = 4.36 $ for i in {1..10}; do /usr/bin/time -f%e ./voronoi-dp-tnp -n 30000; done 3.74 3.87 3.69 3.91 4.33 4.07 4.26 4.08 3.78 4.32 min = 3.69 mean = 4.005, std = 0.241994031148 max = 4.33 $ for i in {1..10}; do /usr/bin/time -f%e ./voronoi-dp-tp -n 30000; done 4.05 4.03 4.04 4.03 4.02 4.02 4.02 4.02 4.02 4.05 min = 4.02 mean = 4.03, std = 0.0124721912892 max = 4.05 The differences between the patched an unpatched DMD doesn't look relevant, specially taking into account the high variance and that they are not even the same DMD version. Unfortunately the patched GC fall a little (~3%) behind the unpatched one, mean-wise, and a little more if we look at the min (about 10%), but the max drops about the same (~7%) and the variance drops dramatically (~240%) with the patched GC. Considering the precise scanning patch is the first try, and not very optimized, it looks like a tradeoff that worth paying while trying to improve this timings. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------