- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(JProfiler解决Java服务器的性能跟踪
JProfiler 解决Java服务器的性能实战演示
目录
1、 摘要 1
2、 改善服务器的性能 1
3、 分析器原理 2
4、 JProfiler 简介 2
5、 JProfiler 特征 3
5.1 内存剖析 Memory profiler 3
5.2 堆遍历 Heap walker 3
5.3 CPU 剖析 CPU profiler 4
5.4 线程剖析 Thread profiler 4
5.5 VM 遥感勘测技术 VM telemetry 4
6、 本地监控 5
7、 内存泄漏诊断 8
7.1 配置测试用例 8
7.2 开始测试 15
摘要
改善 Java 服务器的性能需要模拟负载下的服务器。创建一个模拟环境、搜集数据并且分析结果可能是对许多开发人员的挑战。这篇文章介绍了使用 JProfiler 跟踪分析 Java 服务器的性能。
简单的性能问题很容易分离并解决,然而,大的性能问题,如内存溢出或者系统的罢工,通常在系统处于高负载情况下发生,就不能这么简单的处理了。这些问题需要一个独立的测试环境、一个模拟的负载,并且需要仔细地分析和跟踪。
在这篇文章中,我使用比较通用的工具( JProfiler )和设备创建了一个性能监控分析环境,跟踪本地和远程的服务器程序,专注于三个性能问题:内存、垃圾回收和多线程运行状况,从而很好的监视 JVM 运行情况及其性能。
改善服务器的性能
服务器的性能改善是依赖于数据的。没有可靠的数据基础而更改应用或环境会导致更差的结果。分析器提供有用的 Java 服务器应用信息,但由于从单用户负载下的数据与多用户负载下得到的数据是完全不同的,这导致分析器的数据并不精确。在开发阶段使用分析器来优化应用的性能是一个好的方式,但在高负载下的应用分析可以取到更好的效果。
在负载下分析服务器应用的性能需要一些基本的元素:
1、 可控的进行应用负载测试的环境。
2、 可控的人造负载使得应用满负荷运行。
3、 来自监视器、应用和负载测试工具自身的数据搜集。
4、 性能改变的跟踪。
不要低估最后一个需求(性能跟踪)的重要性因为如果不能跟踪性能你就不能实际的管理项目。性能上 10-20% 的改善对单用户环境来说并没有什么不同,但对支持人员来说就不一样了。 20% 的改善是非常大的,而且通过跟踪性能的改善,你可以提供重要的反馈和持续跟踪。
虽然性能跟踪很重要,但有时为了使后续的测试更加精确而不得不抛弃先前的测试结果。在性能测试中,改善负载测试的精确性可能需要修改模拟环境,而这些变化是必须的,通过变化前后的负载测试你可以观察到其中的转变。
内存泄漏诊断
内存回收低位点不断升高(以每次内存回收的最低点连成一条直线,那么它是一条上升线);内存回收的频率也越来越高,内存占用也越来越高,最终出现Out of Memory Exception的系统异常。
解决办法:定位那些有内存泄漏的类或对象并修改完善这些类以避免内存泄漏。方法是:经过一段时间的测试、监控,如果某个类的对象数目屡创新高,即使在JVM Full GC后仍然数目降不下来,这些对象基本上是属于内存泄漏的对象了。
配置测试用例
配置说明
操作系统:Windows xp
Web容器:Tomcat5.0
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 = ;
}
?
package cn.test;
import java.util.ArrayList;
public class TestMain {
public static ArrayList list = new ArrayList(); //存放对象的容器
public static int counter = 0;????//作统计用
}
?
4.JSP文件init1.jsp、init2.jsp
Init1.jsp(每次执行都创建1万个TestBean对象)
%@ page language=java import=cn.test.* pageEncoding=ISO-8859-1%
!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN
html
head
titleinit/title
/head
您可能关注的文档
最近下载
- 2025至2030全球及中国荧光微球行业调研及市场前景预测评估报告.docx VIP
- NB_T 10091-2018高压开关设备温度在线监测装置技术规范.pdf
- 单缸液压圆锥破操作保养规程.docx VIP
- 六年级(上)语文1-28课核心考点汇总.pdf VIP
- 夏商周考古思考题.pdf VIP
- 2025年铁路局招聘考试题库《铁路基础知识》及答案.docx VIP
- 武汉大学泛函分析讲义.3.1共轭空间与共轭算子.pdf VIP
- 浅析全自动钠离子交换器.doc VIP
- 山东省聊城市东昌府区文轩湖西校区2024-2025学年八年级上学期期中地理试题.docx VIP
- GB_T 3246.1-2024 变形铝及铝合金制品组织检验方法 第1部分:显微组织检验方法.pdf VIP
原创力文档


文档评论(0)