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.
|