Java性能分析点滴

性能测试工具点滴 中说明了性能测试的工具选择,如果软件存在性能问题,我们改如何解决呢?此时一些性能分析工工具会起到作用。

名词

http://en.wikipedia.org/wiki/Profiling_(computer_programming)

http://zh.wikipedia.org/wiki/%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%90

性能分析的原则:80-20,80%的问题集中于20%的代码中

CPU :程序效率

内存 :泄露和GC等情况

监控等几大类

 

主要的工具有如下的几类

The Eclipse Test and Performance Tools Platform (TPTP)

http://www.eclipse.org/tptp/

eclipse 官方的 Profiling 工具插件

http://download.eclipse.org/releases/helios

VisualVM

http://visualvm.java.net/index.html

JDK中还藏着一个宝贝,它的名字叫做VisualVM。

http://developer.51cto.com/art/200906/130424.htm

http://www.open-open.com/open222559.htm

http://fangrn.iteye.com/blog/502532

JDK安装目录下启动jvisualvm.exe即可

Netbeans profiler

http://profiler.netbeans.org/

NetBeans Profiler 为优化应用程序的运行速度和内存使用提供了专家级的帮助,从而便于您构建可靠且可伸缩的 Java SE、JavaFX 和 Java EE 应用程序。

http://netbeans.org/features/java/profiler_zh_CN.html

http://profiler.netbeans.org/

师出同门,和Visual VM有很多相似之处

CodePro Profiler

http://www.eclipse.org/proposals/tools.rat/

由 instantiations 公司推出的一款商用 eclipse 插件,由google收购后贡献给Eclipse,目前还没有使用的版本

TPTP被置为归档模式, 以后就是这个替换(http://www.infoq.com/cn/news/2010/12/google-donates

商业

YourKit

http://yourkit.com/

JProfiler

http://www.ej-technologies.com/products/jprofiler/overview.html

 

参考

http://www.ibm.com/developerworks/cn/java/j-lo-profiling/index.html?ca=drs- 常用 Java Profiling 工具的分析与比较

时间: 2024-10-14 22:15:34

Java性能分析点滴的相关文章

SQL点滴27—性能分析之执行计划

原文:SQL点滴27-性能分析之执行计划 一直想找一些关于SQL语句性能调试的权威参考,但是有参考未必就能够做好调试的工作.我深信实践中得到的经验是最珍贵的,书本知识只是一个引导.本篇来源于<Inside Microsoft SQL Server 2008>,有经验的高手尽管拍砖把.   这个部分将讲解一些性能分析工具,这些性能分许主要关注在执行计划.   缓存执行计划  SQL Server 2008提供了一些服务器对象来分析执行计划Sys.dm_exec_cached_plans:   

Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)

概要 前面,我们学完了List的全部内容(ArrayList, LinkedList, Vector, Stack). Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例  Java 集合系列04之 fail-fast总结(通过ArrayList来说明fail-fast的原理.解决办法)  Java 集合系列05之 LinkedList详细介绍(源码解析)和使用示例 Java 集合系列06之 Vector详细介绍(源码解析)和使用示例 Java 集合系列07之 Stack

Java性能的优化(上)(转)

性能|优化 Java在九十年代中期出现以后,在赢得赞叹的同时,也引来了一些批评.赢得的赞叹主要是Java的跨平台的操作性,即所谓的"Write Once,Run Anywhere".但由于Java的性能和运行效率同C相比,仍然有很大的差距,从而引来了很多的批评. 对于服务器端的应用程序,由于不大涉及到界面设计和程序的频繁重启,Java的性能问题看似不大明显,从而一些Java的技术,如JSP,Servlet,EJB等在服务器端编程方面得到了很大的应用,但实际上,Java的性能问题在服务器

(代码级)Java性能的优化

性能|优化 Java在九十年代中期出现以后,在赢得赞叹的同时,也引来了一些批评.赢得的赞叹主要是Java的跨平台的操作性,即所谓的"Write Once,Run Anywhere".但由于Java的性能和运行效率同C相比,仍然有很大的差距,从而引来了很多的批评. 对于服务器端的应用程序,由于不大涉及到界面设计和程序的频繁重启,Java的性能问题看似不大明显,从而一些Java的技术,如JSP,Se rvlet,EJB等在服务器端编程方面得到了很大的应用,但实际上,Java的性能问题在服务

Java性能的优化(上)

性能|优化 Java在九十年代中期出现以后,在赢得赞叹的同时,也引来了一些批评.赢得的赞叹主要是Java的跨平台的操作性,即所谓的"Write Once,Run Anywhere".但由于Java的性能和运行效率同C相比,仍然有很大的差距,从而引来了很多的批评. 对于服务器端的应用程序,由于不大涉及到界面设计和程序的频繁重启,Java的性能问题看似不大明显,从而一些Java的技术,如JSP, Servlet,EJB等在服务器端编程方面得到了很大的应用,但实际上,Java的性能问题在服务

Java 性能优化之 String 篇

String 在 JVM 的存储结构 一般而言,Java 对象在虚拟机的结构如下: 对象头(object header):8 个字节 Java 原始类型数据:如 int, float, char 等类型的数据,各类型数据占内存如 表 1. Java 各数据类型所占内存. 引用(reference):4 个字节 填充符(padding) 表 1. Java 各数据类型所占内存 然而,一个 Java 对象实际还会占用些额外的空间,如:对象的 class 信息.ID.在虚拟机中的状态.在 Oracle

关于Java性能的9个谬论

Java的性能有某种黑魔法之称.部分原因在于Java平台非常复杂,很多情况下问题难以定位.然而在历史上还有一种趋 势,人们靠智慧和经验来研究Java性能,而不是靠应用统计和实证推理.在这篇文章中,我希望拆穿一些最荒谬的技术神话 . 1.Java很慢 关于Java的性能有很多谬论,这一条是最过时的,可能也是最为明显的. 确实,在上 世纪90年代和本世纪初处,Java有时是很慢. 然而从那以后,虚拟机和JIT技术已经有了十多年的改进,Java的整体 性能现在已经非常好了. 在6个独立的Web性能基准

关于Java性能监控您不知道的5件事,第2部分:利用JDK内置分析器进行Java进程

关于Java性能监控您不知道的5件事,第2部分:利用JDK内置分析器进行Java进程监控 全功能内置分析器,如 JConsole 和 VisualVM 的成本有时比它们的性能费用还要高 - 尤其是在生产软件上运行的系统中.因此,在聚焦 Java 性能监控的第 2 篇文章中,我将介绍 5 个命令行分析工具,使开发人员仅关注运行的 Java 进程的一个方面. JDK 包括很多命令行实用程序,可以用于监控和管理 Java 应用程序性能.虽然大多数这类应用程序都被标注为 "实验型",在技术上不

百度工程师讲PHP函数的实现原理及性能分析(三)

  这篇文章主要介绍了百度工程师讲PHP函数的实现原理及性能分析(三),本文讲解了常用php函数实现及介绍,并作了总结及建议,需要的朋友可以参考下 常用php函数实现及介绍 count count是我们经常用到的一个函数,其功能是返回一个数组的长度. count这个函数,其复杂度是多少呢? 一种常见的说法是count函数会遍历整个数组然后求出元素个数,因此复杂度是O(n).那实际情况是不是这样呢?我们回到count的实现来看一下,通过源码可以发现,对于数组的count操作,函数最终的路径是zif