Since the allocation helper is inlined now, I reran the old allocation rate
test( with the default heapsize 256 M ) ...while gc_gen and gc_cc are in the
same ballpark, there is still some way to go to catch up with RI. Log
attached.




On 12/5/06, Mikhail Fursov <[EMAIL PROTECTED]> wrote:

If you compare performance of allocation - allocation fast path helper
code
is all you need.
And we need to check performance not with microtests, but use real
benchmarks. Microtests can hide cache misses in our example.

On 12/5/06, Ivan Volosyuk <[EMAIL PROTECTED]> wrote:
>
> Helper code is equal. GC code is not. Lets compare apples with oranges.
> --
> Ivan
>
> On 12/5/06, Mikhail Fursov <[EMAIL PROTECTED]> wrote:
> > The helpers code is equal, except this load. So if we have different
> > performance -> this extra memory access is the cause.
> >
> > On 12/5/06, Ivan Volosyuk <[EMAIL PROTECTED]> wrote:
> > >
> > > I think in order to do this comparison, other conditions should be
> > > equal. Comparing helper with 1 dependent load in gc_cc and helper
with
> > > 2 dependent loads in gc_v5 makes no sense to me.
>



--
Mikhail Fursov


gcgen default heapsize 256M
=============================
Timing 50 million total object allocations
Varying number of threads and number of objects retained

Timing  1 threads, retaining 64 Objects:  
3.625 seconds  210.20689655172413 MB/sec
Timing  1 threads, retaining 128 Objects:  
3.593 seconds  212.0790425827999 MB/sec
Timing  1 threads, retaining 256 Objects:  
3.579 seconds  212.90863369656327 MB/sec
Timing  1 threads, retaining 512 Objects:  
3.578 seconds  212.96813862493013 MB/sec
Timing  1 threads, retaining 1024 Objects:  
3.578 seconds  212.96813862493013 MB/sec
Timing  1 threads, retaining 2048 Objects:  
3.578 seconds  212.96813862493013 MB/sec
Timing  1 threads, retaining 4096 Objects:  
3.688 seconds  206.61605206073753 MB/sec
Timing  1 threads, retaining 8192 Objects:  
3.687 seconds  206.67209113100083 MB/sec
Timing  2 threads, retaining 64 Objects:  
5.344 seconds  142.58982035928142 MB/sec
Timing  2 threads, retaining 128 Objects:  
5.484 seconds  138.94967177242887 MB/sec
Timing  2 threads, retaining 256 Objects:  
5.485 seconds  138.92433910665451 MB/sec
Timing  2 threads, retaining 512 Objects:  
5.14 seconds  148.24902723735408 MB/sec
Timing  2 threads, retaining 1024 Objects:  
5.204 seconds  146.42582628747118 MB/sec
Timing  2 threads, retaining 2048 Objects:  
5.312 seconds  143.4487951807229 MB/sec
Timing  2 threads, retaining 4096 Objects:  
5.219 seconds  146.00498179727916 MB/sec
Timing  2 threads, retaining 8192 Objects:  
5.219 seconds  146.00498179727916 MB/sec
Timing  4 threads, retaining 64 Objects:  
6.265 seconds  121.62809257781325 MB/sec
Timing  4 threads, retaining 128 Objects:  
5.672 seconds  134.3441466854725 MB/sec
Timing  4 threads, retaining 256 Objects:  
5.531 seconds  137.76893870909421 MB/sec
Timing  4 threads, retaining 512 Objects:  
5.454 seconds  139.71397139713972 MB/sec
Timing  4 threads, retaining 1024 Objects:  
5.422 seconds  140.53854666174843 MB/sec
Timing  4 threads, retaining 2048 Objects:  
5.593 seconds  136.24173073484712 MB/sec
Timing  4 threads, retaining 4096 Objects:  
5.109 seconds  149.14856136230182 MB/sec
Timing  4 threads, retaining 8192 Objects:  
5.391 seconds  141.34668892598776 MB/sec
Timing  8 threads, retaining 64 Objects:  
5.594 seconds  136.21737575974257 MB/sec
Timing  8 threads, retaining 128 Objects:  
5.5 seconds  138.54545454545453 MB/sec
Timing  8 threads, retaining 256 Objects:  
5.516 seconds  138.14358230601886 MB/sec
Timing  8 threads, retaining 512 Objects:  
5.515 seconds  138.16863100634635 MB/sec
Timing  8 threads, retaining 1024 Objects:  
5.5 seconds  138.54545454545453 MB/sec
Timing  8 threads, retaining 2048 Objects:  
5.438 seconds  140.1250459727841 MB/sec
Timing  8 threads, retaining 4096 Objects:  
5.547 seconds  137.3715521903732 MB/sec
Timing  8 threads, retaining 8192 Objects:  
5.89 seconds  129.37181663837012 MB/sec
Timing  16 threads, retaining 64 Objects:  
5.828 seconds  130.7481125600549 MB/sec
Timing  16 threads, retaining 128 Objects:  
5.86 seconds  130.03412969283275 MB/sec
Timing  16 threads, retaining 256 Objects:  
5.859 seconds  130.0563236047107 MB/sec
Timing  16 threads, retaining 512 Objects:  
5.828 seconds  130.7481125600549 MB/sec
Timing  16 threads, retaining 1024 Objects:  
5.641 seconds  135.0824321928736 MB/sec
Timing  16 threads, retaining 2048 Objects:  
5.781 seconds  131.81110534509602 MB/sec
Timing  16 threads, retaining 4096 Objects:  
5.719 seconds  133.24007693652734 MB/sec
Timing  16 threads, retaining 8192 Objects:  
5.672 seconds  134.3441466854725 MB/sec
Timing  32 threads, retaining 64 Objects:  
5.688 seconds  133.9662447257384 MB/sec
Timing  32 threads, retaining 128 Objects:  
5.656 seconds  134.72418670438472 MB/sec
Timing  32 threads, retaining 256 Objects:  
5.656 seconds  134.72418670438472 MB/sec
Timing  32 threads, retaining 512 Objects:  
5.516 seconds  138.14358230601886 MB/sec
Timing  32 threads, retaining 1024 Objects:  
6.062 seconds  125.70108874958758 MB/sec
Timing  32 threads, retaining 2048 Objects:  
6.25 seconds  121.92 MB/sec
Timing  32 threads, retaining 4096 Objects:  
5.672 seconds  134.3441466854725 MB/sec
Timing  32 threads, retaining 8192 Objects:  
5.859 seconds  130.0563236047107 MB/sec
Total: 252.845 seconds

gc4.1 default heapsize 256 M
===============================
Timing 50 million total object allocations
Varying number of threads and number of objects retained

Timing  1 threads, retaining 64 Objects:  
3.516 seconds  216.7235494880546 MB/sec
Timing  1 threads, retaining 128 Objects:  
3.484 seconds  218.71412169919634 MB/sec
Timing  1 threads, retaining 256 Objects:  
3.485 seconds  218.65136298421808 MB/sec
Timing  1 threads, retaining 512 Objects:  
3.484 seconds  218.71412169919634 MB/sec
Timing  1 threads, retaining 1024 Objects:  
3.5 seconds  217.71428571428572 MB/sec
Timing  1 threads, retaining 2048 Objects:  
3.531 seconds  215.80288870008496 MB/sec
Timing  1 threads, retaining 4096 Objects:  
3.516 seconds  216.7235494880546 MB/sec
Timing  1 threads, retaining 8192 Objects:  
3.594 seconds  212.02003338898163 MB/sec
Timing  2 threads, retaining 64 Objects:  
5.547 seconds  137.3715521903732 MB/sec
Timing  2 threads, retaining 128 Objects:  
5.406 seconds  140.9544950055494 MB/sec
Timing  2 threads, retaining 256 Objects:  
5.297 seconds  143.85501227109685 MB/sec
Timing  2 threads, retaining 512 Objects:  
5.687 seconds  133.98980130121328 MB/sec
Timing  2 threads, retaining 1024 Objects:  
5.282 seconds  144.2635365391897 MB/sec
Timing  2 threads, retaining 2048 Objects:  
5.593 seconds  136.24173073484712 MB/sec
Timing  2 threads, retaining 4096 Objects:  
5.032 seconds  151.4308426073132 MB/sec
Timing  2 threads, retaining 8192 Objects:  
5.765 seconds  132.17692974848222 MB/sec
Timing  4 threads, retaining 64 Objects:  
5.703 seconds  133.61388742766965 MB/sec
Timing  4 threads, retaining 128 Objects:  
5.375 seconds  141.7674418604651 MB/sec
Timing  4 threads, retaining 256 Objects:  
5.422 seconds  140.53854666174843 MB/sec
Timing  4 threads, retaining 512 Objects:  
5.532 seconds  137.74403470715836 MB/sec
Timing  4 threads, retaining 1024 Objects:  
5.375 seconds  141.7674418604651 MB/sec
Timing  4 threads, retaining 2048 Objects:  
5.359 seconds  142.19070722149655 MB/sec
Timing  4 threads, retaining 4096 Objects:  
5.531 seconds  137.76893870909421 MB/sec
Timing  4 threads, retaining 8192 Objects:  
5.422 seconds  140.53854666174843 MB/sec
Timing  8 threads, retaining 64 Objects:  
5.985 seconds  127.31829573934836 MB/sec
Timing  8 threads, retaining 128 Objects:  
6.406 seconds  118.95098345301281 MB/sec
Timing  8 threads, retaining 256 Objects:  
5.828 seconds  130.7481125600549 MB/sec
Timing  8 threads, retaining 512 Objects:  
5.61 seconds  135.82887700534758 MB/sec
Timing  8 threads, retaining 1024 Objects:  
5.593 seconds  136.24173073484712 MB/sec
Timing  8 threads, retaining 2048 Objects:  
5.625 seconds  135.46666666666667 MB/sec
Timing  8 threads, retaining 4096 Objects:  
5.625 seconds  135.46666666666667 MB/sec
Timing  8 threads, retaining 8192 Objects:  
5.625 seconds  135.46666666666667 MB/sec
Timing  16 threads, retaining 64 Objects:  
5.954 seconds  127.9811891165603 MB/sec
Timing  16 threads, retaining 128 Objects:  
5.625 seconds  135.46666666666667 MB/sec
Timing  16 threads, retaining 256 Objects:  
5.437 seconds  140.15081846606583 MB/sec
Timing  16 threads, retaining 512 Objects:  
5.438 seconds  140.1250459727841 MB/sec
Timing  16 threads, retaining 1024 Objects:  
5.719 seconds  133.24007693652734 MB/sec
Timing  16 threads, retaining 2048 Objects:  
5.953 seconds  128.00268772047707 MB/sec
Timing  16 threads, retaining 4096 Objects:  
5.422 seconds  140.53854666174843 MB/sec
Timing  16 threads, retaining 8192 Objects:  
5.484 seconds  138.94967177242887 MB/sec
Timing  32 threads, retaining 64 Objects:  
5.484 seconds  138.94967177242887 MB/sec
Timing  32 threads, retaining 128 Objects:  
5.563 seconds  136.97645155491642 MB/sec
Timing  32 threads, retaining 256 Objects:  
5.469 seconds  139.33077345035656 MB/sec
Timing  32 threads, retaining 512 Objects:  
5.422 seconds  140.53854666174843 MB/sec
Timing  32 threads, retaining 1024 Objects:  
5.422 seconds  140.53854666174843 MB/sec
Timing  32 threads, retaining 2048 Objects:  
5.406 seconds  140.9544950055494 MB/sec
Timing  32 threads, retaining 4096 Objects:  
5.391 seconds  141.34668892598776 MB/sec
Timing  32 threads, retaining 8192 Objects:  
5.563 seconds  136.97645155491642 MB/sec
Total: 250.502 seconds


RI heapsize 256M
=====================
Timing 50 million total object allocations
Varying number of threads and number of objects retained

Timing  1 threads, retaining 64 Objects:  
0.922 seconds  826.4642082429501 MB/sec
Timing  1 threads, retaining 128 Objects:  
0.906 seconds  841.0596026490066 MB/sec
Timing  1 threads, retaining 256 Objects:  
0.938 seconds  812.3667377398721 MB/sec
Timing  1 threads, retaining 512 Objects:  
0.953 seconds  799.5802728226653 MB/sec
Timing  1 threads, retaining 1024 Objects:  
1.031 seconds  739.0882638215326 MB/sec
Timing  1 threads, retaining 2048 Objects:  
1.172 seconds  650.1706484641638 MB/sec
Timing  1 threads, retaining 4096 Objects:  
1.422 seconds  535.8649789029536 MB/sec
Timing  1 threads, retaining 8192 Objects:  
3.0 seconds  254.0 MB/sec
Timing  2 threads, retaining 64 Objects:  
1.047 seconds  727.7936962750716 MB/sec
Timing  2 threads, retaining 128 Objects:  
1.015 seconds  750.7389162561577 MB/sec
Timing  2 threads, retaining 256 Objects:  
1.031 seconds  739.0882638215326 MB/sec
Timing  2 threads, retaining 512 Objects:  
1.079 seconds  706.2094531974051 MB/sec
Timing  2 threads, retaining 1024 Objects:  
1.156 seconds  659.1695501730104 MB/sec
Timing  2 threads, retaining 2048 Objects:  
1.265 seconds  602.3715415019764 MB/sec
Timing  2 threads, retaining 4096 Objects:  
1.344 seconds  566.9642857142857 MB/sec
Timing  2 threads, retaining 8192 Objects:  
2.797 seconds  272.43475151948513 MB/sec
Timing  4 threads, retaining 64 Objects:  
1.047 seconds  727.7936962750716 MB/sec
Timing  4 threads, retaining 128 Objects:  
1.062 seconds  717.5141242937852 MB/sec
Timing  4 threads, retaining 256 Objects:  
1.156 seconds  659.1695501730104 MB/sec
Timing  4 threads, retaining 512 Objects:  
1.125 seconds  677.3333333333334 MB/sec
Timing  4 threads, retaining 1024 Objects:  
1.141 seconds  667.8352322524102 MB/sec
Timing  4 threads, retaining 2048 Objects:  
1.281 seconds  594.8477751756441 MB/sec
Timing  4 threads, retaining 4096 Objects:  
1.328 seconds  573.7951807228916 MB/sec
Timing  4 threads, retaining 8192 Objects:  
1.563 seconds  487.5239923224568 MB/sec
Timing  8 threads, retaining 64 Objects:  
1.187 seconds  641.9545071609098 MB/sec
Timing  8 threads, retaining 128 Objects:  
1.188 seconds  641.4141414141415 MB/sec
Timing  8 threads, retaining 256 Objects:  
1.156 seconds  659.1695501730104 MB/sec
Timing  8 threads, retaining 512 Objects:  
1.156 seconds  659.1695501730104 MB/sec
Timing  8 threads, retaining 1024 Objects:  
1.109 seconds  687.1055004508567 MB/sec
Timing  8 threads, retaining 2048 Objects:  
1.313 seconds  580.3503427265804 MB/sec
Timing  8 threads, retaining 4096 Objects:  
1.359 seconds  560.7064017660044 MB/sec
Timing  8 threads, retaining 8192 Objects:  
1.407 seconds  541.5778251599147 MB/sec
Timing  16 threads, retaining 64 Objects:  
1.343 seconds  567.3864482501862 MB/sec
Timing  16 threads, retaining 128 Objects:  
1.282 seconds  594.383775351014 MB/sec
Timing  16 threads, retaining 256 Objects:  
1.25 seconds  609.6 MB/sec
Timing  16 threads, retaining 512 Objects:  
1.203 seconds  633.4164588528678 MB/sec
Timing  16 threads, retaining 1024 Objects:  
1.219 seconds  625.1025430680886 MB/sec
Timing  16 threads, retaining 2048 Objects:  
1.171 seconds  650.7258753202391 MB/sec
Timing  16 threads, retaining 4096 Objects:  
1.297 seconds  587.5096376252892 MB/sec
Timing  16 threads, retaining 8192 Objects:  
1.344 seconds  566.9642857142857 MB/sec
Timing  32 threads, retaining 64 Objects:  
1.438 seconds  529.90264255911 MB/sec
Timing  32 threads, retaining 128 Objects:  
1.609 seconds  473.586078309509 MB/sec
Timing  32 threads, retaining 256 Objects:  
1.469 seconds  518.720217835262 MB/sec
Timing  32 threads, retaining 512 Objects:  
1.437 seconds  530.2713987473903 MB/sec
Timing  32 threads, retaining 1024 Objects:  
1.266 seconds  601.8957345971564 MB/sec
Timing  32 threads, retaining 2048 Objects:  
1.282 seconds  594.383775351014 MB/sec
Timing  32 threads, retaining 4096 Objects:  
1.344 seconds  566.9642857142857 MB/sec
Timing  32 threads, retaining 8192 Objects:  
1.312 seconds  580.7926829268292 MB/sec
Total: 61.969 seconds



Reply via email to