转载请注明出处java
http://blog.csdn.net/pony_maggie/article/details/44999175
eclipse
做者:小马jvm
VisualVM 是一款免费的性能分析工具。它经过 jvmstat、JMX、SA(Serviceability Agent)以及 Attach API 等多种方式从程序运行时得到实时数据,从而进行动态的性能分析。它最主要的功能是监控内存泄露,跟踪垃圾回收,执行时内存、cpu分析,线程分析等。函数
经过实际的例子来讲明。第一步咱们要安装viual VM, 比较好的是在jdk6以后的安装目录下自带了这个工具,不用再独立安装。
打开以后以下图:
当咱们经过eclipse运行程序时,visual VM会自动识别到正在运行的程序,好比下面一段代码头:
工具
在eclipse下运行这段程序,而后到visual VM中打开监视视图,看到以下的显示状况:
CPU部分不显示,应该是由于我运行的jdk版本过低。内存部分咱们看到堆和perm的使用状况,注意看上面的程序,testStringPoolWithLongString函数是个死循环,不断的调用String的intern,intern返回字符串对象的规范化表示形式,当调用 intern 方法时,若是池已经包含一个等于此 String 对象的字符串,则返回池中的字符串。不然,将此 String 对象添加到池中,而且返回此 String 对象的引用。java7之前,字符串常量池是放在perm空间的, 从java7开始,放在heap空间。我用的版本是1.6,因此若是咱们切换到perm视图看到的会是另外一种景象,
从图上能够看出,不断的GC,又不断的申请空间。
线程部分显示的是当前用户线程和守护线程的数量,
性能