< prev index next >
test/serviceability/sa/jmap-hprof/JMapHProfLargeHeapProc.java
Print this page
*** 19,34 ****
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
- import java.lang.management.ManagementFactory;
- import java.lang.management.RuntimeMXBean;
- import java.lang.reflect.Field;
- import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import sun.management.VMManagement;
public class JMapHProfLargeHeapProc {
private static final List<byte[]> heapGarbage = new ArrayList<>();
--- 19,31 ----
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
import java.util.ArrayList;
import java.util.List;
+ import jdk.test.lib.process.ProcessTools;
import sun.management.VMManagement;
public class JMapHProfLargeHeapProc {
private static final List<byte[]> heapGarbage = new ArrayList<>();
*** 36,46 ****
public static void main(String[] args) throws Exception {
buildLargeHeap(args);
// Print our pid on stdout
! System.out.println("PID[" + getProcessId() + "]");
// Wait for input before termination
System.in.read();
}
--- 33,43 ----
public static void main(String[] args) throws Exception {
buildLargeHeap(args);
// Print our pid on stdout
! System.out.println("PID[" + ProcessTools.getProcessId() + "]");
// Wait for input before termination
System.in.read();
}
*** 48,71 ****
for (long i = 0; i < Integer.parseInt(args[0]); i++) {
heapGarbage.add(new byte[1024]);
}
}
- public static int getProcessId() throws Exception {
-
- // Get the current process id using a reflection hack
- RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean();
- Field jvm = runtime.getClass().getDeclaredField("jvm");
-
- jvm.setAccessible(true);
- VMManagement mgmt = (sun.management.VMManagement) jvm.get(runtime);
-
- Method pid_method = mgmt.getClass().getDeclaredMethod("getProcessId");
-
- pid_method.setAccessible(true);
-
- int pid = (Integer) pid_method.invoke(mgmt);
-
- return pid;
- }
-
}
--- 45,50 ----
< prev index next >