转自:http://blog.csdn.net/sinboy/article/details/1536625

程序在实际应用当中,大数据量时对系统本身的影响是一个不得不面对的问题。

最早在使用Jbuilder时,它有个相配套的工具叫Optimize Suite,可以在JBuilder中使用,也可独立使用,用它可以监测运行的并发线程数据、内存的使用情况等,也是不款非常不错的性能测试套件。可惜随着JBuilder的衰落它也渐渐消失在人们的视线中了。我记得还有一个独立的性能测试工具叫JProfiler,从名字上就能看出它是用来干么的,当时好象也是倍受好评的一款工具。

Eclipse崛起后,插件迅速流行,我也非常喜欢这种“按需分配”的模式,用到什么就添加什么。以前对性能这方面的意识不是很强,但上次出现一次教训后,慢慢变的重视起来。人总是在经历过一些教训之后才会长成色:)

首先想到是从Eclipse官方网站找,果然没有让我失望。ECLIPSE官方有一个Test & Performance Tools Platform (TPTP)的项目,很早就有了,只是以前没有关注过,现在最新的稳定版本已经是4.3.1了。可以进行程序执行时间的统计分析、内存的监控、对象调用的分析等,我现在都关注的是的功能是Execution Statistics(程序执行统计),可以显示程序当中开销最大的10个方法也就是系统的瓶颈。找到了瓶颈,我们就可以想方设法去解决它了,或优化或重写,对症下药,不用再无的放失。

其实TPTP的使用很简单,但在下载使用的时候一定要注意TPTP插件本身的版本和ECLIPSE版本的配合,否则很可能会重蹈我连试好几次都无法正常运行的覆辙。下面简单说一下安装和使用的步骤:

1.从ECLIPSE官方网站下载TPTP4.3.1版本,和它相应的ECLIPSE版本是3.2.2,如图一所示:

图一

2.安装完成后,重新启动ECLIPSE,必要的话请加上参数-clean进行清理。如果安装正常,在标准按钮一栏会显示TPTP的快捷图标,如图二所示:

图二

3.选择你要进行性能测试的工程的主类,在该主类上用右键点击,菜单上会出现Profile as,再选择java application。当然,如果你的工程不是JAVA应用程序,而是web程序,你还需要安装相应的web插件WTP,选择Profile on serve即可,如下图三所示:

图三

4.之后,会显示一个选择监控项目的窗口,它默认的监测项目有三个:内存分析(Basic Memory  Analysis)、执行时间分析(Executeion Time Analysis)、代码覆盖(Method Code Coverage),如下图四所示:

图四

5.点击确定按钮,程序开始运行,同时监控也将开始,ECLIPSE会切换的监控视图,如下图五所示:

图五

6.双击监项目,可以看到具体的监控结果,如下图六所示:

图六

7.从上面监控结果来看,很清楚地知道了系统中开销最大的现个方法,奇怪的是这个几在平时看来并不特别的方法怎么会有如此大的开销呢?仔细分析代码发现,每次用数据过来之后,在处理之前和处理完毕后都要判断发送者是移动号码还是联通号码,在判断号码时又调用了字符串全角转半角的方法quan2ban(String str)。噢,原来如此呀。虽然在全转半时考虑到了全角数字的情况,但实际系统的运行过程,这一可能性几乎不会出现,所以可以把quan2ban()方法从中移除,开销大大减少。isAllChinese()方法也是如此,代码调整后再次测试,结果如下图七所示:

图七

8.虽然有了大大的改进,但这两个方法好象还被多次调用,问题何在?对方法的调用情况做进一步的分析得知,在程序初始化词典库时,会用过该两方法,但初始化并不影响系统的正常数据处理,可以先把初始化的过程屏蔽掉,再次测试,结果如下图八所示:

图八

9.很奇怪,开销最大的竟然是四个类的构造函数,真的是一头雾水,构造函数里并没有执行什么操作,怎么可能会有如此大的开销呢?况且我刚刚对对象的创建做过测试,几乎是不花费多少开销的。经过仔细研究发现,日志的输出我用到了LOG4J这个实用的工具,并且为了使日志输出能够按照我自定义的方式进行,每个类在创建时我都调用了一这样一句:PropertyConfigurator.configure(ConfParam.LOG4J_PROP_CONF);难道是加载配置参数的原因?把这一句屏蔽掉,问题果然消除。一一对开销比较大的方法进行分析优化,使系统的处理能力有了很大的改观。

在TPTP的学习使用当中,我主要用到了执行时间分析这一项监控功能,因为我系统的主要问题出现在执行的效率上,如果是内存开销的问题,你可以把注意力集中到内存分析上。当然TPTP还有其它很强大的功能,有待进一步的学习和研究。

提示:使用TPTP进行性能测试时,系统启动的时间和运行的时间都可能远远超出正常运行的时间,我原来正常1分钟完成初始化的过程,启用TPTP后竟然长达10几分钟,晕。。。

转载于:https://www.cnblogs.com/anruy/p/4891769.html

ECLIPSE中添加TPTP插件相关推荐

  1. eclipse中添加aptana插件(html.css.js自动提示)

    一.关于aptana aptana是一款很不错的插件,本人主要用于安装此类插件,在eclipse中用于编辑javascript代码,html代码,和css代码的,因为其有自动纠错功能,当然安装后的问题 ...

  2. eclipse中添加svn插件

    在eclipse中使用svn查看能非常方便的对代码进行查看和更新提交操作,能及时知道代码的更新状态. 在eclipse中如果要使用svn,只能使用svn插件的方式进行. 插件地址:http://sub ...

  3. java adt怎么使用_如何在eclipse中添加android ADT ADT插件的安装图文教程

    对于程序开发的学者来说,eclipse并不陌生,它为我们提供了一个非常广阔的平台来开发程序.同样我们也可以用它来开发android程序.但是在eclipse中并不能直接开发android程序,需要我们 ...

  4. 在eclipse中安装properties插件PropertiesEditor及设置(附图),ASCII码转换成中文

    在eclipse中安装properties插件PropertiesEditor及设置(附图),ASCII码转换成中文 安装成功后ASCII还是不能转换成中文的,原因是设置里面没有把编码设置为utf8的 ...

  5. SVN工具的使用 和在Eclipse中安装GPD插件:(多步审批流,因此选择使用工作流(JBPM)来实现)...

    前言 重点解说SVN工具的还原版本号. 1.提交svn之前.要先更新文件.假设更新之后有版本号冲突的话.就线下解决掉冲突,在把该文件标记为已经解决冲突. 正文 使用SVN还原历史版本号 去除掉Ecli ...

  6. Eclipse中的checkstyle插件

    一.Checkstyle工具 Checkstyle是一款检查Java程序源代码样式的工具,它可以有效的帮助我们检视代码以便更好的遵循代码编写标准. 官方地址:http://checkstyle.sou ...

  7. eclipse中下载spring-tool-suite插件遇到的问题

    eclipse中下载spring-tool-suite插件遇到的问题 我的eclipse的版本4.7.0,接下来以下载我的eclipse的对应STS版本3.8.4为例,讲一下遇到的问题.不同版本的ec ...

  8. 如何在Eclipse中添加Servlet-api.jar的方法

    方法一: 点击窗口->首选项->java->构建路径->类路径变量->新建: 将你的tomcat目录下的common/lib/servlet.jar加进来. 如果你建立了 ...

  9. Eclipse中安装TestNG插件

    Eclipse中安装TestNG插件 HelpàInstall new Software Work with:填入http://beust.com/eclipse 点击Add Name:TestNG ...

最新文章

  1. 选择scrum任务看板管理工具的要点
  2. 编程珠玑十一章课后题答案
  3. python安装pyinstaller出现错误_pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)...
  4. 分享一个VisualStudio2010插件——Productivity Power Tools
  5. nginx多端口配置php,nginx服务器使用不同端口配置多个网站站点
  6. 微服务架构-服务注册中心和服务网关(6.8) (转载)
  7. 3d激光雷达开发(圆柱分割)
  8. python argparse 入门
  9. 基于CentOS7安装CM
  10. 用HTML语言制作一个非常浪漫的生日祝福网,手把手教你制作炫酷生日祝福网页
  11. 数学顶级期刊- 数学纪事,数学年刊,数学进展,数学杂志
  12. Opencv最新版本Opencv3.3.0集成了DNN神经网络模块
  13. 后端面试(一)计算机网络相关
  14. 写在第35个教师节到来时的话——对我国现阶段职业教育改革的总体论述
  15. Python之NumPy(axis=0/1/2...)的透彻理解——通过np.sum(axis=?)实例进行说明
  16. 电脑链接wifi显示无法连接服务器,电脑连接wifi出现感叹号_电脑连接wifi成功但上不了网怎么办?-192路由网...
  17. vue+element实现美观大方好看的音乐网站,仿照咪咕音乐网
  18. 【解决方案】基于国标GB28181协议EasyGBS平台搭建的交警执法综合管理视频监控方案
  19. Python快速搭建网站
  20. 理解逻辑斯蒂回归模型

热门文章

  1. CPU的分身术:千手观音与齐天大圣
  2. Python爬虫之实习生面试问题(一) 爬虫实习生 爬虫面试问题
  3. iOS App被拒常见原因
  4. Java用最少代码实现五子棋-玩家对战模式-人机对战模式-电脑策略对战
  5. 手机android app 无线控制led灯开关
  6. “爱拍照”的OPPO逆袭战:合并一加,跑步造车
  7. Xcode免证书打包ipa
  8. 7-3 计算职工工资
  9. (附源码)php单招志愿采集系统 毕业设计 091409
  10. vue 动态渲染图片 不出来