- 浏览: 147946 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
august_000:
很有道理,我已经亲自测试过了:
public class ...
单例模式之线程安全解析 -
Chris_bing:
一个单例有这么多名堂,最后那个内部类的解决方案很有创意啊,受教 ...
单例模式之线程安全解析
来源:http://www.javaweb.cc/language/java/042588.shtml
在给客户的应用程序维护的过程中,我注意到在高负载下的一些性能问题。理论上,增加对应用程序的负载会使性能等比率的下降。然而,我认为性能下降的 比率远远高于负载的增加。我也发现,性能可以通过改变应用程序的逻辑来提升,甚至达到极限。为了更详细的了解这一点,我们需要做一些性能分析,自然也要用 到一些分析工具。
Java有许多的性能分析工具,可以帮助我们弄清楚这个问题,但是我们应该使用哪一款工具呢?
为了做出正确的选择,我列出性能分析应满足一些最低要求:
1.必须包括对应用程序的类、方法及时间的监测
2.必须包括对内存的监测
3.必须具有易用性
我配置了一个使用RESTful接口的Spring应用程序,使用MongoDB作为数据存储,还使用Solr搜索,并在Tomcat服务器上部署。
参考工具:
VisualVM
VisualVM是一个资源分析工具,一直从JDK 6更新到7.它默认内存和CPU的监视。它可以告诉你哪个类和方法消耗资源,但它不会显示代码流程。
JProfiler
JProfiler很容易安装,并且通过向导,你可以选择应用服务器 用来运行应用程序。我不得不选择使用JPofiler应用服务器的主目录,以及向导生成的一个单独的启动脚本。然后运行服务器。在监听会话的过程中,它会 提供了几个选项。它可以记录内存的使用和CPU的使用率。在查看CPU的使用率同时,可以看到执行路径。这让我看到应用程序大部分时间都花在请求上。我们 可以将IntelliJ插件安装到IDE上,那么运行JProfiler会更加便利。比如,可以直接帮我启动Tomcat.
YourKit
YourKit是我在另一个项目中偶然发现的一款性能分析工具。它的安装很简单。安装时有一个选项,可以安装一个插件到我的IDE.安装后,运 行应用程序,使用该插件,它会自动连接到YourKit.它有一个漂亮的用户界面可以查看到内存和CPU的监测,同时也可以看到请求的执行路径。
JProbe
我刚开始创建JProbe时遇到点困难。安装并不是直接完成,我需要对它进行配置。它采用了类似JProfiler一样的设置。它会在你的 Tomcat目录中生成启动脚本。可以通过脚本启动服务器并监听会话。它的界面包含有按钮和表格,其中可以看到内存的使用,但无法在进程中找到执行路径。
Spring Insight
听到TC Server有Spring Insight监控界面,于是我兴奋地尝试了一下。安装完成后,并设置成TC Server的开发者版,然后部署应用程序在TC Server上。我查看Insight界面,它可以很好的监视类和方法,并能看到完成这个方法用了多少时间。我还能看到输入参数值,以及返回值。由于我的 应用程序是基于Spring的,Spring Insight能够提供非常有用的数据。TC Server插件在IDE上的配置与Tomcat的配置类似。SpringSource工具套件就自带Spring Insight.
结 论
看到这五款性能分析工具,我可以肯定地说,它们都非常不错。如果你有基于Spring的应用程序,那么选择Spring Insight显然是最佳的。它一直是免费的,但你需要部署你的应用在TC Server上。
如果你想监听本地和远程的进程,我会选择JProfiler或YourKit.这两个也可以帮助Spring Insight来监测、找到性能瓶颈。
JProfiler和YourKit已经能满足我的上述要求。JProfiler、YourKit和Spring Insight都可以跟 踪应用程序的类和方法的流向。JProfiler和YourKit可以显示内存使用情况。虽然Spring Insight不可以显示内存使用情况,但它可以很好的显示吞吐量的趋势。这三款性能分析工具功能很清楚,不混乱,而且容易使用。最后,他们都有自己的 IDE插件。希望本文能帮助你做出正确的选择。
在给客户的应用程序维护的过程中,我注意到在高负载下的一些性能问题。理论上,增加对应用程序的负载会使性能等比率的下降。然而,我认为性能下降的 比率远远高于负载的增加。我也发现,性能可以通过改变应用程序的逻辑来提升,甚至达到极限。为了更详细的了解这一点,我们需要做一些性能分析,自然也要用 到一些分析工具。
Java有许多的性能分析工具,可以帮助我们弄清楚这个问题,但是我们应该使用哪一款工具呢?
为了做出正确的选择,我列出性能分析应满足一些最低要求:
1.必须包括对应用程序的类、方法及时间的监测
2.必须包括对内存的监测
3.必须具有易用性
我配置了一个使用RESTful接口的Spring应用程序,使用MongoDB作为数据存储,还使用Solr搜索,并在Tomcat服务器上部署。
参考工具:
VisualVM
VisualVM是一个资源分析工具,一直从JDK 6更新到7.它默认内存和CPU的监视。它可以告诉你哪个类和方法消耗资源,但它不会显示代码流程。
JProfiler
JProfiler很容易安装,并且通过向导,你可以选择应用服务器 用来运行应用程序。我不得不选择使用JPofiler应用服务器的主目录,以及向导生成的一个单独的启动脚本。然后运行服务器。在监听会话的过程中,它会 提供了几个选项。它可以记录内存的使用和CPU的使用率。在查看CPU的使用率同时,可以看到执行路径。这让我看到应用程序大部分时间都花在请求上。我们 可以将IntelliJ插件安装到IDE上,那么运行JProfiler会更加便利。比如,可以直接帮我启动Tomcat.
YourKit
YourKit是我在另一个项目中偶然发现的一款性能分析工具。它的安装很简单。安装时有一个选项,可以安装一个插件到我的IDE.安装后,运 行应用程序,使用该插件,它会自动连接到YourKit.它有一个漂亮的用户界面可以查看到内存和CPU的监测,同时也可以看到请求的执行路径。
JProbe
我刚开始创建JProbe时遇到点困难。安装并不是直接完成,我需要对它进行配置。它采用了类似JProfiler一样的设置。它会在你的 Tomcat目录中生成启动脚本。可以通过脚本启动服务器并监听会话。它的界面包含有按钮和表格,其中可以看到内存的使用,但无法在进程中找到执行路径。
Spring Insight
听到TC Server有Spring Insight监控界面,于是我兴奋地尝试了一下。安装完成后,并设置成TC Server的开发者版,然后部署应用程序在TC Server上。我查看Insight界面,它可以很好的监视类和方法,并能看到完成这个方法用了多少时间。我还能看到输入参数值,以及返回值。由于我的 应用程序是基于Spring的,Spring Insight能够提供非常有用的数据。TC Server插件在IDE上的配置与Tomcat的配置类似。SpringSource工具套件就自带Spring Insight.
结 论
看到这五款性能分析工具,我可以肯定地说,它们都非常不错。如果你有基于Spring的应用程序,那么选择Spring Insight显然是最佳的。它一直是免费的,但你需要部署你的应用在TC Server上。
如果你想监听本地和远程的进程,我会选择JProfiler或YourKit.这两个也可以帮助Spring Insight来监测、找到性能瓶颈。
JProfiler和YourKit已经能满足我的上述要求。JProfiler、YourKit和Spring Insight都可以跟 踪应用程序的类和方法的流向。JProfiler和YourKit可以显示内存使用情况。虽然Spring Insight不可以显示内存使用情况,但它可以很好的显示吞吐量的趋势。这三款性能分析工具功能很清楚,不混乱,而且容易使用。最后,他们都有自己的 IDE插件。希望本文能帮助你做出正确的选择。
发表评论
-
(转)Spring声明式事务配置详解
2013-11-11 16:45 1827Spring声明式事务功能应该是大家应用Spring中使用的最 ... -
HashMap的遍历
2013-11-01 14:15 8831、新建一个HashMap Map<Integer , ... -
java将汉子转换成汉语拼音
2013-11-01 13:51 929import net.sourceforge.pinyin4j ... -
Spring加载properties文件的两种方式
2013-10-31 10:05 0在spring中可以通过下面的方式将配置文件中的项注入到配置中 ... -
动态加载spring .xml中的bean对象
2013-10-30 15:27 0在java中如何取得spring.xml中加载的bean对象? ... -
(转)Spring mvc+hibernate+freemarker(实战)
2013-10-28 19:40 988http://zz563143188.iteye.com/bl ... -
(转)Java之美[从菜鸟到高手演变]系列之博文阅读导航
2013-10-28 17:00 1732Java之美[从菜鸟到高手演变]系列之博文阅读导航 http: ... -
(转)openssl 制作证书和签名java方法
2013-10-28 15:03 0Win32OpenSSL_Light-0_9_8k.exe ... -
(转)面向接口编程详解
2013-10-25 12:34 5老文章,自己学习。 面向接口编程详解(一) http://w ... -
项目管理工具集锦
2013-10-16 22:06 0redmine: [url]http://blog.china ... -
(转)Redmine2.1邮件发送配置:使用QQ企业邮箱
2013-10-16 22:00 4264原文链接:http://blog.csdn.net/iefre ... -
(转)Java架构师之路:JAVA程序员必看的15本书
2013-10-08 18:24 0作为Java程序员来说,最 ... -
Java获取CPU ID和磁盘ID
2013-09-25 20:18 0原文链接:http://www.rgagnon.com/jav ... -
Java编程之备用程序段
2013-09-25 14:57 0记录一些程序段,供日常备用,持续增加中…… 1. Java中 ... -
(转)Java编程之AOP
2013-09-25 14:45 0链接: http://hw19886200.iteye.com ... -
Java编程之性能优化
2013-09-25 14:28 760最近的机器内存又爆满 ... -
使用axis2传输附件
2013-09-25 10:40 1050服务端Service文件: import java.io. ... -
Java应用程序项目打包成exe文件
2013-09-23 09:16 01.程序打包 首先将程序打成Jar包,打包命 ... -
(转)Java事务处理类型及差异总结
2013-09-18 13:54 1613一、什么是Java事务 ... -
JAVA文件_加密
2013-09-13 16:09 0import java.awt.*; import java ...
相关推荐
本文将详细介绍几款主流的Java性能分析工具,并进行对比分析,帮助开发者选择最适合自己的工具。 #### 1. VisualVM VisualVM是一款开源的工具,自JDK 6 Update 7起被默认包含在内。它能够提供CPU的使用情况、内存...
Java文件对比工具是一种用于比较两个或多个文件之间差异的实用程序,特别适用于编程环境中检查代码间的相似性或差异。在Java开发中,这样的工具能够帮助开发者有效地定位代码修改的地方,协同工作时解决合并冲突,...
MAT,全称Memory Analyzer Tool,是由Eclipse基金会开发的一款强大的Java内存分析工具。它主要用于诊断Java应用程序中的内存泄漏和理解对象内存占用情况,是Java性能优化的重要助手。在这个"MAT Eclipse Memory...
JavaMelody是一款强大的JAVA Web项目服务器性能监控工具,它能够实时、全面地监控应用程序的运行状态,帮助开发者和运维人员了解系统性能瓶颈,及时发现并解决问题。通过在Java Web应用中简单集成,JavaMelody就能...
总的来说,Java性能优化是一个系统性的工程,涉及到代码优化、JVM调优以及使用像Optimizeit Profiler这样的专业工具。通过深入理解这些工具,开发者能够有效地提升应用的运行效率,降低资源消耗,为用户提供更优质的...
标题中的“实用小工具:Java实体类对比、Json对比、字符串动态拼接等功能”涉及到的是在软件开发过程中常用的几个技术点,主要集中在Java后端和前端Vue.js的应用上。这里我们将详细探讨这些知识点: 1. **Java实体...
三、与其他工具对比 虽然HeapAnalyzer功能强大,但也有其他工具如MAT (Eclipse Memory Analyzer Tool) 和VisualVM等可供选择。MAT提供了更丰富的视图和分析功能,而VisualVM则集成了多种监控和分析工具,包括CPU、...
TDA(Thread Dump Analyzer)是一款强大的Java线程分析工具,它能够帮助开发者深入理解应用在运行时的线程状态,包括线程的阻塞情况、等待资源、死锁等问题。下面将详细介绍TDA的使用方法、功能以及它如何帮助我们...
IBM提供了几个强大的分析工具,专注于线程、垃圾收集(GC)和内存管理,以帮助开发者更好地理解和解决问题。这些工具包括IBM Thread and Monitor Dump Analyzer for Java、HeapAnalyzer以及可能的GA441(可能是另一...
MAT是Eclipse项目的一部分,它是一款免费且开源的工具,专门用于分析Java堆转储(Heap Dump)文件,帮助开发者识别内存泄漏、分析内存占用情况以及优化内存使用。MAT提供了丰富的功能和视图,使得复杂的内存问题变得...
Java性能监控工具JProfiler是Java开发中的重要辅助软件,它为开发者提供了深入的性能分析功能,帮助优化应用程序的运行效率。JProfiler 4.3.2版本是该工具的一个历史版本,虽然较新版本可能拥有更多特性,但4.3.2...
Java对比工具是一种强大的软件开发辅助工具,主要用于比较和分析不同文件或文件夹之间的差异。它在编程、版本控制以及数据同步等场景中扮演着重要角色。以下是对Java对比工具及其功能的详细说明: 1. **文本对比**...
通过使用此工具,开发者可以对比Java源代码和Smali代码,加深对Android系统运行机制的理解。 7. **优化和调试**:在某些情况下,直接修改Smali代码可能比修改Java源代码更有效,尤其是在处理性能问题或处理特定的...
"Java中Excel转图片工具包(纯java)"就是这样一个解决方案,它实现了将Excel文件通过PDF中间格式转化为图片的功能。 首先,让我们了解一下这个工具包的工作原理。Excel文件本身并不直接支持转换为图片格式,但可以...
IBM内存分析工具(IBM Memory Analyzer,简称MAT)是一款强大的、免费的诊断工具,适用于所有Java虚拟机(JVM)。它能够提供详细的内存分配和引用路径信息,帮助开发者深入理解内存消耗情况,找出可能导致内存问题...
了解Java性能调优技巧,如JVM参数调整、代码优化,以及使用Java的并发工具来提高程序效率。 总的来说,从Delphi转向Java涉及到语言特性的理解、代码结构的重构、库和API的替换,以及对新平台特性的掌握。这是一个...
jProfiler7是一款强大的Java性能分析工具,尤其在内存分析方面表现出色。它专为开发者设计,帮助他们在Linux环境中深入理解并优化Java应用程序的内存使用情况。本篇文章将详细探讨jProfiler7在Java内存分析上的核心...
Java开发过程中,性能优化是至关重要的一步,而`jProfiler`正是这样一个强大的工具,专为Java开发者设计,用于深入分析应用程序的性能。标题中的“jprofiler java开发软件性能测试工具”表明,jProfiler是一个针对...
jProfiler是一款功能强大的Java性能分析工具,尤其体现在其最新版本jProfiler11上。这款工具专为Java EE和Java SE应用程序开发者设计,提供了全方位的性能监控与优化功能,帮助开发者在开发过程中及时发现并解决性能...