[infinispan-dev] Re: JProfiler snapshots for Infinispan+JBMAR

David M. Lloyd david.lloyd at redhat.com
Fri May 8 18:52:05 EDT 2009


Galder, would you mind switching to trunk and trying that version 
(unofficial 1.2.0.CR1 - yes I *promise* I'll fix the versioning and get a 
source blob built asap!)?

- DML

On 05/08/2009 12:09 PM, Galder Zamarreno wrote:
> Profiler data with JBMAR r174
> 
> Galder Zamarreno wrote:
>> Hi David,
>>
>> Please find attach graphs belonging to two runs that compare:
>>
>> infinispan-4.0.0(repl-sync) - home grown marshalling layer
>> infinispan-4.0.0(repl-sync-jbmar) - infinispan + jbmar 1.1.2
>> infinispan-4.0.0(repl-sync-jbmar)-rXYZ - infinispan + jbmar with revision
>>
>> Not sure what's the conclusion here tbh. The results of 1.1.2 almost 
>> look opposite in each test.
>>
>> I've also attached some information from previously run profiling 
>> sessions with a couple of local machines we have in Neuchatel. I 
>> profiled the faster of the two machines.
>>
>> Actually, looking at this profiled data, these tests are for 
>> synchronous replicated caches but I see no traces of actually reading 
>> the stream, only writing to it, hmmmm.
>>
>> I'm adding Externalizers to class table and implementing 
>> marshaller/unmarshaller pooling as my next tasks.
>>
>> Regards,
>>
>> David M. Lloyd wrote:
>>> OK, I tried out a few things.  You might want to try introducing 
>>> these one at a time (i.e. update up to rev 173, then 174, then 175 
>>> and see how each one does).  In particular, I think 175 has just as 
>>> much chance of slowing things down as speeding them up - either 
>>> you're getting tons of collisions in the hash table or the profiler 
>>> is skewing the results there (maybe try filtering out 
>>> org.jboss.marshalling.util.IdentityIntMap and java.lang.System to see 
>>> if that gives a different picture).
>>>
>>> I feel pretty good about 173 and 174 though I think the profiler will 
>>> skew 173 unless you have that UTFUtils filter installed.  If 175 
>>> slows things down (outside of the profiler), let me know and I'll 
>>> revert it.  None of my tests showed much difference but I don't have 
>>> any good benchmarks that really exercise that code right now.
>>>
>>> There's a couple things left to try yet, like looking at replacing 
>>> ConcurrentReferenceHashMap (assuming that isn't the profiler again).
>>>
>>> ------------------------------------------------------------------------
>>> r175 | david.lloyd at jboss.com | 2009-05-08 00:17:46 -0500 (Fri, 08 May 
>>> 2009) | 1 line
>>>
>>> Try a trick to decrease the liklihood of collisions
>>> ------------------------------------------------------------------------
>>> r174 | david.lloyd at jboss.com | 2009-05-08 00:04:39 -0500 (Fri, 08 May 
>>> 2009) | 1 line
>>>
>>> Replacement caching is not economical; the cost is one extra hash 
>>> table get for non-replaced objects, two hash table gets (total) for 
>>> replaced objects.  Removing the cache gets rid of the cost for 
>>> non-replaced objects, while replaced objects now have to be replaced 
>>> again before the single hash table hit.
>>> ------------------------------------------------------------------------
>>> r173 | david.lloyd at jboss.com | 2009-05-07 23:44:52 -0500 (Thu, 07 May 
>>> 2009) | 1 line
>>>
>>> JBMAR-52 - Avoid extra copy of char array (1.5 of 2)
>>> ------------------------------------------------------------------------
>>>
>>> - DML
>>
> 



More information about the infinispan-dev mailing list