Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] Garbage collector behavior

Hi all,

I had to bench clearly memory consumptions and cpu usage overheads in those configs (aspect scalability, LTW / compile time W, no aspect at all) and here is what i got :

benchmark
	weaving 	glM (KB) 	tgPk (KB) 	ccM (KB) 	tgM (KB) 	glT (ms) 	gcT (ms)
bench1 CT few aspects 70,085.41 97,510.18 26.71 65,470.21 15,555.11 4,590.33 CT many aspects 70,064.73 97,497.00 26.11 65,470.54 15,956.42 4,509.00
LT few aspects
	117,904.67 	112,381.06 	161.26 	112,381.06 	16,512.71 	2,179.00
no aspects
	70,067.72 	97,515.85 	25.37 	65,469.83 	15,737.30 	4,551.67
LT many aspects
	119,323.28 	109,141.54 	107.46 	109,141.54 	18,595.90 	2,380.67
bench2 CT few aspects 77,874.13 72,646.21 31.59 72,646.21 40,059.81 6,447.67 CT many aspects 75,584.27 70,877.49 29.85 70,877.49 41,238.57 6,379.33
LT few aspects
	103,814.15 	103,671.09 	267.99 	93,940.62 	38,536.98 	4,707.67
no aspects
	77,716.08 	72,481.75 	29.85 	72,481.75 	40,638.22 	6,409.00
LT many aspects
	102,670.77 	104,942.94 	238.74 	95,081.41 	43,023.24 	4,337.00


quick legend :

   * *glM : *globalMemoryConsumed
   * *tgPk : *peakMemoryConsumed
   * *ccM : *codeCacheMemoryConsumed
   * *tgM : *tenuredGenMemoryConsumed
   * *glT : *globalTime
   * *gcT : *gcTime

Those marks have been done using hotspot 1.5 and new JMX features..
Well those results should not stand as direct proofs but maybe just hints on the LTW consumption.

My aspects are really simple : for profiling I do not use any runtime check nor advanced aspectj features such as thisJointPoint** and when I say *many* aspects, i just mean 15, compared to *few* (1) :)

The important thing is that the overhead resides in the tenured gen pool, quite an old space.. that means that aspectj ltw still holds hard references somewhere and forcing collections should not help with any thing... Other interesting stuff is code cache consumption ; well I do not know much about that, but ltw needs much more than simply duplicating class defs.

The very good news is that compile time weaving do not introduce any distorsion ; that is great for my profiling !!

hope it helps.
--
Mathieu




Back to the top