On 12/11/06, Geir Magnusson Jr. <[EMAIL PROTECTED]> wrote:
>
>
> Xiao-Feng Li wrote:
> > The allocation rate tuning in my opinion is actually the simplest part
> > for GC performance. The reason is, the allocation code sequence is
> > almost the same for all the bump pointer allocation. The allocation
> > helper inlining is expected to provide direct help.
>
> 4x help?
I can't predict, let's wait and see.
Thanks,
xiaofeng
> geir
>
> >
> > Thanks,
> > xiaofeng
> >
> > On 12/10/06, Geir Magnusson Jr. <[EMAIL PROTECTED]> wrote:
> >> Nice - any thoughts on where to focus for improved performance?
> >>
> >> geir
> >>
> >>
> >> Rana Dasgupta wrote:
> >> > 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
> >> >
> >> >
> >> >
> >>
>