openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christiaan <christiaan...@hotmail.com>
Subject Re: Performance: single vs multiple transactions
Date Fri, 17 Aug 2007 10:35:00 GMT

Hi,
I had a closer look at the performance of the myDelete() method. 

Time being spent as percentage of total time in MyDelete():

	 % of total time in flush()
1  min   20%  
10 min   45%



After 1 minute the hotspots look like this for flush() (self time = total
time - time being spent in other methods)

method                                                                                   
     
self time (%)   invocations
------------------------------------------------------------------------------------------------------------------------------
java.io.DataInputStream.readFully(byte[], int, int)                                      
     
913 ms (23%)	1224
java.util.HashMap.getEntry(Object)                                                       
     
74.1 ms (1,9%)	48831
java.io.DataOutputStream.write(byte[], int, int)                                         
     
50.2 ms (1,3%)	610
java.util.BitSet.get(int)                                                                
     
31.5 ms (0,8%)	107295
org.apache.openjpa.lib.util.concurrent.ReentrantLock.unlock()                            
     
26.5 ms (0,7%)	92485
......
java.io.DataOutputStream.flush()                                                         
     
1.7 ms (0%)	4178


after 10 mintes:
method                                                                                   
     
self time (%)   invocations
---------------------------------------------------------------------------------------------------------------------------
java.io.DataInputStream.readFully(byte[], int, int)                                      
     
7435 ms (5,4%)	21732
java.util.BitSet.get(int)                                                                
     
2920 ms (2,1%)	9607796
org.apache.openjpa.kernel.StateManagerImpl.proxyFields(boolean, boolean)                 
     
2459 ms (1,8%)	726936
org.apache.openjpa.kernel.SingleFieldManager.proxy(boolean, boolean)                     
     
1671 ms (1,2%)	4114255
org.apache.openjpa.meta.ClassMetaData.getField(int)                                      
     
1128 ms (0,8%)	4784295
org.apache.commons.collections.map.AbstractReferenceMap$ReferenceEntrySetIterator.hasNext()
   
1083 ms (0,8%)	1449895
org.apache.openjpa.kernel.StateManagerImpl.provideField(PersistenceCapable,
FieldManager, int)  978 ms (0,7%)	4128617
......
java.io.DataOutputStream.write(byte[], int, int)                                         
     
836 ms (0,6%)	10864
......
java.io.DataOutputStream.flush()                                                         
     
2.92 ms (0%)	10864

btw, BitSet.get() is being called in StateManagerImpl.preFlush()

So over time there is a significant increase in the time being spent in
openjpa methods.

kind regards,
Christiaan
-- 
View this message in context: http://www.nabble.com/Performance%3A-single-vs-multiple-transactions-tf4272115.html#a12197421
Sent from the OpenJPA Users mailing list archive at Nabble.com.


Mime
View raw message