Java性能分析点滴

简介: 性能测试工具点滴 中说明了性能测试的工具选择,如果软件存在性能问题,我们改如何解决呢?此时一些性能分析工工具会起到作用。 名词 http://en.wikipedia.org/wiki/Profiling_(computer_programming) http://zh.

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

名词

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 工具的分析与比较

相关文章
|
2月前
|
安全 Java 编译器
new出来的对象,不一定在堆上?聊聊Java虚拟机的优化技术:逃逸分析
逃逸分析是一种静态程序分析技术,用于判断对象的可见性与生命周期。它帮助即时编译器优化内存使用、降低同步开销。根据对象是否逃逸出方法或线程,分析结果分为未逃逸、方法逃逸和线程逃逸三种。基于分析结果,编译器可进行同步锁消除、标量替换和栈上分配等优化,从而提升程序性能。尽管逃逸分析计算复杂度较高,但其在热点代码中的应用为Java虚拟机带来了显著的优化效果。
61 4
|
18天前
|
数据采集 存储 弹性计算
高并发Java爬虫的瓶颈分析与动态线程优化方案
高并发Java爬虫的瓶颈分析与动态线程优化方案
|
6月前
|
监控 Java Unix
6个Java 工具,轻松分析定位 JVM 问题 !
本文介绍了如何使用 JDK 自带工具查看和分析 JVM 的运行情况。通过编写一段测试代码(启动 10 个死循环线程,分配大量内存),结合常用工具如 `jps`、`jinfo`、`jstat`、`jstack`、`jvisualvm` 和 `jcmd` 等,详细展示了 JVM 参数配置、内存使用、线程状态及 GC 情况的监控方法。同时指出了一些常见问题,例如参数设置错误导致的内存异常,并通过实例说明了如何排查和解决。最后附上了官方文档链接,方便进一步学习。
664 4
|
2月前
|
机器学习/深度学习 安全 Java
Java 大视界 -- Java 大数据在智能金融反洗钱监测与交易异常分析中的应用(224)
本文探讨 Java 大数据在智能金融反洗钱监测与交易异常分析中的应用,介绍其在数据处理、机器学习建模、实战案例及安全隐私等方面的技术方案与挑战,展现 Java 在金融风控中的强大能力。
|
3月前
|
存储 Java 大数据
Java 大视界 -- Java 大数据在智能家居能源消耗模式分析与节能策略制定中的应用(198)
简介:本文探讨Java大数据技术在智能家居能源消耗分析与节能策略中的应用。通过数据采集、存储与智能分析,构建能耗模型,挖掘用电模式,制定设备调度策略,实现节能目标。结合实际案例,展示Java大数据在智能家居节能中的关键作用。
|
4月前
|
数据采集 搜索推荐 算法
Java 大视界 -- Java 大数据在智能教育学习社区用户互动分析与社区活跃度提升中的应用(274)
本文系统阐述 Java 大数据技术在智能教育学习社区中的深度应用,涵盖数据采集架构、核心分析算法、活跃度提升策略及前沿技术探索,为教育数字化转型提供完整技术解决方案。
|
4月前
|
Java 数据库连接 API
互联网大厂校招 JAVA 工程师笔试题解析及常见考点分析
本文深入解析互联网大厂校招Java工程师笔试题,涵盖基础知识(数据类型、流程控制)、面向对象编程(类与对象、继承与多态)、数据结构与算法(数组、链表、排序算法)、异常处理、集合框架、Java 8+新特性(Lambda表达式、Stream API)、多线程与并发、IO与NIO、数据库操作(JDBC、ORM框架MyBatis)及Spring框架基础(IoC、DI、AOP)。通过技术方案讲解与实例演示,助你掌握核心考点,提升解题能力。
175 2
|
5月前
|
人工智能 Java
Java参数传递分析
本文详细探讨了Java中参数传递的机制,明确指出Java采用的是值传递而非引用传递。通过基本数据类型(如int)和引用类型(如Map、自定义对象People)的实例测试,证明方法内部对参数的修改不会影响原始变量。即使在涉及赋值返回的操作中,表面上看似引用传递,实际仍是值传递的结果。文中结合代码示例与执行结果,深入解析了值传递的本质及容易引起混淆的情形,帮助读者准确理解Java参数传递的核心概念。
|
传感器 分布式计算 安全
Java 大视界 -- Java 大数据在智能安防入侵检测系统中的多源数据融合与分析技术(171)
本文围绕 Java 大数据在智能安防入侵检测系统中的应用展开,剖析系统现状与挑战,阐释多源数据融合及分析技术,结合案例与代码给出实操方案,提升入侵检测效能。
|
5月前
|
缓存 安全 Java
【高薪程序员必看】万字长文拆解Java并发编程!(3-1):并发共享问题的解决与分析
活锁:多个线程相互影响对方退出同步代码块的条件而导致线程一直运行的情况。例如,线程1的退出条件是count=5,而线程2和线程3在其代码块中不断地是count进行自增自减的操作,导致线程1永远运行。内存一致性问题:由于JIT即时编译器对缓存的优化和指令重排等造成的内存可见性和有序性问题,可以通过synchronized,volatile,并发集合类等机制来解决。这里的线程安全是指,多个线程调用它们同一个实例的方法时,是线程安全的,但仅仅能保证当前调用的方法是线程安全的,不同方法之间是线程不安全的。
91 0