ÒòΪÏëÓµÓУ¬ËùÒÔÒª²»¶ÏŬÁ¦

JVM°²×°¼°Ó¦ÓÃѧϰ

ÉÏһƪ / ÏÂһƪ  2013-07-30 10:58:15 / ¸öÈË·ÖÀࣺJVM

JProfilerѧϰ±Ê¼Ç

 

---------------------------------------------------------------------------------------------------------------------

 

   תÔØÓÚ£º

          http://blog.csdn.net/djy1135/article/details/2304465

 

--------------------------------------------------------------------------------------------------------------------

 

 

Ò»¡¢°²×°JProfiler

´Óhttp://www.ej-technologies.com/ÏÂÔØ5.1.2²¢ÉêÇëÊÔÓÃÐòÁкÅ

¶þ¡¢Ö÷Òª¹¦Äܼò½é

1£®ÄÚ´æÆÊÎöMemory profiler

JProfilerµÄÄÚ´æÊÓͼ²¿·Ö¿ÉÒÔÌṩ¶¯Ì¬µÄÄÚ´æʹÓÃ×´¿ö¸üÐÂÊÓͼºÍÏÔʾ¹ØÓÚÄÚ´æ·ÖÅä×´¿öÐÅÏ¢µÄÊÓͼ¡£ËùÓеÄÊÓͼ¶¼Óм¸¸ö¾Û¼¯²ã²¢ÇÒÄܹ»ÏÔʾÏÖÓдæÔڵĶÔÏóºÍ×÷ΪÀ¬»ø»ØÊյĶÔÏó¡£

  • ËùÓжÔÏó
    ÏÔʾÀà»òÔÚ×´¿öͳ¼ÆºÍ³ßÂëÐÅÏ¢¶ÑÉÏËùÓжÔÏóµÄ°ü¡£Äã¿ÉÒÔ±ê¼Çµ±Ç°Öµ²¢ÏÔʾ²îÒìÖµ¡£
  • ¼Ç¼¶ÔÏóRecord objects
    ÏÔʾÀà»òËùÓÐÒѼǼ¶ÔÏóµÄ°ü¡£Äã¿ÉÒÔ±ê¼Ç³öµ±Ç°Öµ²¢ÇÒÏÔʾ²îÒìÖµ¡£
  • ·ÖÅä·ÃÎÊÊ÷Allocation call tree
    ÏÔʾһ¿ÃÇëÇóÊ÷»òÕß·½·¨¡¢Àà¡¢°ü»ò¶ÔÒÑÑ¡ÔñÀàÓдø×¢Ê͵ķÖÅäÐÅÏ¢µÄJ2EE×é¼þ¡£
  • ·ÖÅäÈȵãAllocation hot spots
    ÏÔʾһ¸öÁÐ±í£¬°üÀ¨·½·¨¡¢Àà¡¢°ü»ò·ÖÅäÒÑÑ¡ÀàµÄJ2EE×é¼þ¡£Äã¿ÉÒÔ±ê×¢µ±Ç°Öµ²¢ÇÒÏÔʾ²îÒìÖµ¡£¶ÔÓÚÿ¸öÈȵ㶼¿ÉÒÔÏÔʾËüµÄ¸ú×ټǼÊ÷¡£

2£®¶Ñ±éÀúHeap walker

ÔÚJProfilerµÄ¶Ñ±éÀúÆ÷(Heap walker)ÖУ¬Äã¿ÉÒԶԶѵÄ×´¿ö½øÐпìÕÕ²¢ÇÒ¿ÉÒÔͨ¹ýÑ¡Ôñ²½ÖèÏÂÑ°ÕÒ¸ÐÐËȤµÄ¶ÔÏ󡣶ѱéÀúÆ÷ÓÐÎå¸öÊÓͼ£º

  • ÀàClasses
    ÏÔʾËùÓÐÀàºÍËüÃǵÄʵÀý¡£
  • ·ÖÅäAllocations
    ΪËùÓмǼ¶ÔÏóÏÔʾ·ÖÅäÊ÷ºÍ·ÖÅäÈȵ㡣
  • Ë÷ÒýReferences
    Ϊµ¥¸ö¶ÔÏóºÍ¡°ÏÔʾµ½À¬»ø»ØÊÕ¸ùĿ¼µÄ·¾¶¡±ÌṩË÷ÒýͼµÄÏÔʾ¹¦ÄÜ¡£»¹ÄÜÌṩºÏ²¢ÊäÈëÊÓͼºÍÊä³öÊÓͼµÄ¹¦ÄÜ¡£
  • Êý¾ÝData
    Ϊµ¥¸ö¶ÔÏóÏÔʾʵÀýºÍÀàÊý¾Ý¡£
  • ʱ¼äTime
    ÏÔʾһ¸ö¶ÔÒѼǼ¶ÔÏóµÄ½â¾öʱ¼äµÄÖù״ͼ¡£

3£®CPUÆÊÎöCPU profiler

JProfilerÌṩ²»Í¬µÄ·½·¨À´¼Ç¼·ÃÎÊÊ÷ÒÔÓÅ»¯ÐÔÄܺÍϸ½Ú¡£Ï̻߳òÕßÏß³Ì×éÒÔ¼°Ïß³Ì×´¿ö¿ÉÒÔ±»ËùÓеÄÊÓͼѡÔñ¡£ËùÓеÄÊÓͼ¶¼¿ÉÒÔ¾Û¼¯µ½·½·¨¡¢Àà¡¢°ü»òJ2EE×é¼þµÈ²»Í¬²ãÉÏ¡£CPUÊÓͼ²¿·Ö°üÀ¨£º

  • ·ÃÎÊÊ÷Call tree
    ÏÔʾһ¸ö»ýÀÛµÄ×Ô¶¥ÏòϵÄÊ÷,Ê÷Öаüº¬ËùÓÐÔÚJVMÖÐÒѼǼµÄ·ÃÎʶÓÁС£JDBC,JMSºÍJNDI·þÎñÇëÇ󶼱»×¢ÊÍÔÚÇëÇóÊ÷ÖС£ÇëÇóÊ÷¿ÉÒÔ¸ù¾ÝServletºÍJSP¶ÔURLµÄ²»Í¬ÐèÒª½øÐвð·Ö¡£
  • ÈȵãHot spots
    ÏÔʾÏûºÄʱ¼ä×î¶àµÄ·½·¨µÄÁÐ±í¡£¶Ôÿ¸öÈȵ㶼Äܹ»ÏÔʾ»ØËÝÊ÷¡£¸ÃÈȵã¿ÉÒÔ°´ÕÕ·½·¨ÇëÇó£¬JDBC£¬JMSºÍJNDI·þÎñÇëÇóÒÔ¼°°´ÕÕURLÇëÇóÀ´½øÐмÆËã¡£
  • ·ÃÎÊͼCall graph
    ÏÔʾһ¸ö´ÓÒÑÑ¡·½·¨¡¢Àà¡¢°ü»òJ2EE×é¼þ¿ªÊ¼µÄ·ÃÎʶÓÁеÄͼ¡£

4£®Ïß³ÌÆÊÎöThread profiler

¶ÔÏß³ÌÆÊÎö£¬JProfilerÌṩÒÔÏÂÊÓͼ:

  • Ïß³ÌÀúÊ·Thread history
    ÏÔʾһ¸öÓëÏ̻߳ºÍÏß³Ì״̬ÔÚÒ»ÆðµÄ»î¶¯Ê±¼ä±í¡£
  • Ï̼߳à¿ØThread monitor
    ÏÔʾһ¸öÁÐ±í£¬°üÀ¨ËùÓеĻÏß³ÌÒÔ¼°ËüÃÇÄ¿Ç°µÄ»î¶¯×´¿ö¡£
  • ËÀËø̽²âͼ±íDeadlock Detection
    ÏÔʾһ¸ö°üº¬ÁËËùÓÐÔÚJVMÀïµÄËÀËøͼ±í¡£
  • ĿǰʹÓõļà²âÆ÷Current monitor useage
    ÏÔʾĿǰʹÓõļà²âÆ÷²¢ÇÒ°üÀ¨ËüÃǵĹØÁªÏ̡߳£
  • ÀúÊ·¼ì²â¼Ç¼History usage history
    ÏÔʾÖØ´óµÄµÈ´ýʼþºÍ×èÈûʼþµÄÀúÊ·¼Ç¼¡£
  • ¼à²âʹÓÃ״̬Monitor usage statistics
    ÏÔʾ·Ö×é¼à²â£¬Ï̺߳ͼà²âÀàµÄͳ¼Æ¼à²âÊý¾Ý¡£

5£®VMÒ£¸Ð¿±²â¼¼ÊõVM telemetry

¹Û²ìJVMµÄÄÚ²¿×´Ì¬£¬JProfilerÌṩÁ˲»Í¬µÄÒ£¸Ð¿±²âÊÓͼ£¬ÈçÏÂËùʾ:

  • ¶ÑHeap
    ÏÔʾһ¸ö¶ÑµÄʹÓÃ×´¿öºÍ¶Ñ³ß´ç´óС»î¶¯Ê±¼ä±í¡£
  • ¼Ç¼µÄ¶ÔÏóRecorded objects
    ÏÔʾһÕŹØÓڻ¶ÔÏóÓëÊý×éµÄͼ±íµÄ»î¶¯Ê±¼ä±í¡£
  • À¬»ø»ØÊÕGarbage collector
    ÏÔʾһÕŹØÓÚÀ¬»ø»ØÊջµÄ»î¶¯Ê±¼ä±í¡£
  • ÀàClasses
    ÏÔʾһ¸öÓëÒÑ×°ÔØÀàµÄͼ±íµÄ»î¶¯Ê±¼ä±í¡£
  • Ïß³ÌThreads
    ÏÔʾһ¸öÓ붯̬Ïß³Ìͼ±íµÄ»î¶¯Ê±¼ä±í¡£

Èý¡¢ÊµÕ½

(Ò»)ÈÎÎñÄ¿±ê

ÕÒ³öÏîÄ¿ÖÐÄÚ´æÔö´óµÄÔ­Òò

£¨¶þ£©ÅäÖÃ˵Ã÷

²Ù×÷ϵͳ£ºWindows2003

WebÈÝÆ÷£ºTomcat5.0.23

JDK°æ±¾£ºsun1.4.2

¼à¿ØÀàÐÍ£º±¾µØ

Jprofiler°²×°Â·¾¶£ºD:/jprofiler5

Tomcat°²×°Â·¾¶£ºD:/Tomcat5

(Èý)²âÊÔÏîÄ¿

1£®Ð½¨WEBÏîÄ¿test

2£®½¨°ücn.test

3£®ÔڸðüϽ¨ÀàÎļþTestMain.javaºÍTestBean.java

package cn.test;

public class TestBean {

String name = "";

}

packagecn.test;

importjava.util.ArrayList;

publicclassTestMain {

publicstaticArrayListlist=newArrayList(); //´æ·Å¶ÔÏóµÄÈÝÆ÷

public static int counter = 0; //×÷ͳ¼ÆÓÃ

}

4.½¨²âÊÔÓõÄJSPÎļþinit1.jsp¡¢init2.jsp

Init1.jsp£¨Ã¿´ÎÖ´Ðж¼´´½¨1Íò¸öTestBean¶ÔÏó£©

<%@pagelanguage="java"import="cn.test.*"pageEncoding="ISO-8859-1"%>

<!DOCTYPEHTMLPUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>init</title>

</head>

<body><%

for(inti=0;i<10000;i++){

TestBean b =newTestBean();

TestMain.list.add(b);

}

%>

SIZE:<%=TestMain.list.size()%><br/>

counter:<%=TestMain.counter++%>

</body>

</html>

Init2.jspºÍinit1.jspһģһÑù¼´¿É£¨ºóÃæÓÐÓã©¡£

(ËÄ)ÅäÖòâÊÔÓÃÀý

1£®µã»÷d:/jprofiler5/bin/jprofiler.exe

2£®Ö´Ðв˵¥Session¨¤Integration Wizards¨¤New ServerIntegration

Ñ¡ÔñÊDZ¾µØ²âÊÔ»

TAG:

 

ÆÀ·Ö£º0

ÎÒÀ´ËµÁ½¾ä