|
Relates :
|
|
|
Relates :
|
|
|
Relates :
|
|
|
Relates :
|
|
|
Relates :
|
java.lang.instrument.Instrumentation.retransoformClasses() leaks
memory for the retransformed class or classes.
As part of the work on this bug, the following SDK/JDK test
will be added:
java/lang/instrument/RetransformBigClass.sh
The attached output.6u29_server_base.with_transformer.log tells
the tale for the Server VM on Solaris X86. Version info is:
java version "1.6.0-201112142258.dcubed.exp_bofa_leak"
Java(TM) SE Runtime Environment (build 1.6.0-201112142258.dcubed.exp_bofa_leak-jprtadm_14_Dec_2011_15_17-b00)
Java HotSpot(TM) Server VM (build 20.4-b02, mixed mode)
The above bits are with the fix for 7121600 in place.
Here is trace info for the first RedefineClasses() call:
RedefineClasses-0x1: loading name=BigClass (avail_mem=1183084K)
RedefineClasses-0x1: loaded name=BigClass (avail_mem=1178924K)
RedefineClasses-0x1: redefined name=BigClass, count=1 (avail_mem=1178884K)
Here is trace info for the last RedefineClasses() call:
RedefineClasses-0x1: loading name=BigClass (avail_mem=134072K)
RedefineClasses-0x1: loaded name=BigClass (avail_mem=133040K)
RedefineClasses-0x1: redefined name=BigClass, count=1000 (avail_mem=133040K)
Here's the math for leak:
1178884 - 133040
1045844
. / 1024
1021.3320
So we leaked just over 1GB in 1000 RedefineRetransform() calls.
The attached output.6u29_client_base.with_transformer.log tells
the tale for the Client VM on Solaris X86. Version info is:
java version "1.6.0-201112142258.dcubed.exp_bofa_leak"
Java(TM) SE Runtime Environment (build 1.6.0-201112142258.dcubed.exp_bofa_leak-jprtadm_14_Dec_2011_15_17-b00)
Java HotSpot(TM) Client VM (build 20.4-b02, mixed mode)
The above bits are with the fix for 7121600 in place.
Here is trace info for the first RedefineClasses() call:
RedefineClasses-0x1: loading name=BigClass (avail_mem=1112544K)
RedefineClasses-0x1: loaded name=BigClass (avail_mem=1108400K)
RedefineClasses-0x1: redefined name=BigClass, count=1 (avail_mem=1108352K)
Here is trace info for the last RedefineClasses() call:
RedefineClasses-0x1: loading name=BigClass (avail_mem=151196K)
RedefineClasses-0x1: loaded name=BigClass (avail_mem=150160K)
RedefineClasses-0x1: redefined name=BigClass, count=1000 (avail_mem=150160K)
Here's the math for leak:
1108352 - 150160
958192
. / 1024
935.7343
So we leaked almost 1GB in 1000 RedefineRetransform() calls.
|