Env: Axis1.4/Tomcat 5.0.30/Java 1.5.0_07/Solaris 10. Description : right after system(tomcat) is started, the "top" command show that tomcat process will use 210M memory, the heap size (using Jprofiler) is 58m/20m(total/used). there is a 150M gap between total process memory size and java heap size.
I run a client to invoke the web service in a loop, couple houres later, tomcat process memory size can grow to 510M, the heap size of is 190m/20m (total/used). so the gap between process memory size and java heap size grows to 320M. From gc log, I didn't any thing weired since the used heap size can keep at 20m, no memory leak can be found at jprofiler. So my questions are: 1, what is the difference between java process memory size and java heap size ? why can it be 150M in right after tomcat is started ? 2, why the gap between top can heap can grows from 150M to 320M, where does 170M more memory gone ? does anybody have simliar experience using axis/tomcat ? I need help thanks xucai Client side code example: *// get a port from client stub . ignored. * * while (true) { try { long start=System.currentTimeMillis(); for ( int i=0; i<1000; i++) { String reply= port.request(command); // web service call System.out.print("."); } long end=System.currentTimeMillis(); long used= (end-start)/1000; System.out.println(); System.out.println("Time used: "+used); } catch(Exception e) { e.printStackTrace(); } } * -- - xucai