jcmd
provides GC.run command to request garbage collection process.
Let
me explain with an example.
HelloWorld.java
public class HelloWorld { public static void main(String args[]) throws Exception { Thread t1 = new Thread() { public void run() { int count = 0; while (true) { count++; Employee emp = new Employee(); emp.id = count; emp.name = "name " + count; try { Thread.sleep(1000); } catch (Exception e) { } } } }; t1.start(); } public static class Employee { private int id; private String name; @Override protected void finalize() throws Throwable { System.out.println("Calling finalize method for id : " + id + ", name : " + name); } } }
Compile
and run HeloWorld.java.
Open
command prompt and execute ‘jcmd’ command.
C:\>jcmd 21712 sun.tools.jcmd.JCmd 13220 9752 HelloWorld
As
you see above output, HelloWorld application is running with process id 9752.
Execute
the command ‘jcmd 9752 help’ to check whether GC.run is available for this
application or not.
As
you see above image, ‘GC.run’ command is available for this application.
Execute
the command ‘jcmd 9752 GC.run’
C:\>jcmd
9752 GC.run
9752:
Command
executed successfully
You
can able to see below kind of messages in HelloWorld console.
C:\Users\krishna\Documents>java -classpath . HelloWorld Calling finalize method for id : 147, name : name 147 Calling finalize method for id : 146, name : name 146 Calling finalize method for id : 145, name : name 145 Calling finalize method for id : 144, name : name 144 Calling finalize method for id : 143, name : name 143 Calling finalize method for id : 142, name : name 142 Calling finalize method for id : 141, name : name 141 Calling finalize method for id : 140, name : name 140 Calling finalize method for id : 139, name : name 139 Calling finalize method for id : 138, name : name 138 Calling finalize method for id : 137, name : name 137 Calling finalize method for id : 136, name : name 136 Calling finalize method for id : 135, name : name 135 Calling finalize method for id : 134, name : name 134 Calling finalize method for id : 133, name : name 133 Calling finalize method for id : 132, name : name 132 Calling finalize method for id : 131, name : name 131 Calling finalize method for id : 130, name : name 130 Calling finalize method for id : 129, name : name 129 Calling finalize method for id : 128, name : name 128 Calling finalize method for id : 127, name : name 127 Calling finalize method for id : 126, name : name 126 Calling finalize method for id : 125, name : name 125 Calling finalize method for id : 124, name : name 124 Calling finalize method for id : 123, name : name 123 .............. .............. ..............
No comments:
Post a Comment