Re: hg: mlvm/mlvm/jdk: cval: hang caches on classes

2011-08-04 Thread John Rose
Benchmarks indicate a 4x speedup from previous implementation. The fast path has 7 memory references. Here's what it looks like: {mov eax, (cval : ClassValue); mov edx, (type : Class)} M1: mov ecx, [edx+0x60] ;*getfield Class.classValueCache : Entry[] M2: mov ebp, [ecx+0x8]

Re: hg: mlvm/mlvm/jdk: cval: hang caches on classes

2011-08-04 Thread Charles Oliver Nutter
I see there's WeakReference used in there...will ClassValue have WeakReference-like impact on GC? I'll try to get JRuby using ClassValue for a few things soon, to help test this out against non-ClassValue solutions. - Charlie On Thu, Aug 4, 2011 at 1:21 AM, John Rose wrote: > Benchmarks indicat

Re: hg: mlvm/mlvm/jdk: cval: hang caches on classes

2011-08-04 Thread Rémi Forax
Not sure to understand the full patch, anyway nextHashCode should be declared final. regards, Rémi On 08/04/2011 10:21 AM, John Rose wrote: Benchmarks indicate a 4x speedup from previous implementation. The fast path has 7 memory references. Here's what it looks like: {mov eax, (cval :

Re: hg: mlvm/mlvm/jdk: cval: hang caches on classes

2011-08-04 Thread John Rose
On Aug 4, 2011, at 1:43 AM, Charles Oliver Nutter wrote: > I see there's WeakReference used in there...will ClassValue have > WeakReference-like impact on GC? In that respect it be like ThreadLocal. You can create, use, and discard ThreadLocal and ClassValue objects without a storage leak. > I

Re: hg: mlvm/mlvm/jdk: cval: hang caches on classes

2011-08-04 Thread John Rose
On Aug 4, 2011, at 3:53 AM, Rémi Forax wrote: > Not sure to understand the full patch, > anyway nextHashCode should be declared final. Right; thanks. The code needs a few more well-chosen comments. I hope reviewer feedback can help me figure out what those can be. Also, I could use some advi