昨天下午发现自己现在的Java代码运行一些复杂情况时相当的慢,运行一遍居然需要好几个小时,这种情况真是让人难以忍受。起初猜想了几处可能的问题,但是始终没有直接的感受,自己也说不清楚慢的根本原因。
记得上次在浏览Eclipse的各种插件的时候看到过有用于性能测试的插件,凭着模糊的记忆,开始搜索相关的插件。
开始实验了一个叫Profiler的插件,弄了半天才发现这个东西不支持较新的Eclipse和Jre,而且SF的项目首页上明确写了这个项目已经死掉。呵呵,只能怪自己没有先看文档啊。
后来发现了Eclipse下另外一个更好的插件TPTP(Eclipse Test & Performance Tools Platform Project)。记得这个东西是Eclipse 3.3 Europe发布时大力推崇的东东,只是原来不知道有这么强大。
这个东西的安装非常的麻烦,因为需要预装很多乱七八糟的插件,昨晚折腾到凌晨两点也没有弄好,包括在今年2月份才发布的最新版的Eclipse 3.4M5。好在今天上午继续搜索时发现了TPTP网站上有All-in-one版的TPTP。仔细观察,这个版本对应的Eclipse 是3.3.2,居然和Eclipse网站首页发布的最新版本号一致。这个说明,目前最新版的Eclipse中最稳定的还是3.3.2。
All-in-one版的TPTP包含了很多需要预装的插件,同时也包含了Eclipse。打开Eclipse后,按照官方提供的TPTP的所有文档中找到了一个示范性的举例,依葫芦画瓢,终于学会了使用这个东东。
这里展示几张官方的图片:
性能测试项目的结构
类之间的交互流程图
函数之间的工作流图
各包、类、函数的运行时间
这个东西能够非常详细的分析整个程序中各个包、类、函数的运行情况,包括时间占用、调用分析、内存占用、代码覆盖等等。使用起来真是非常的舒心。唯一一点不好的是,程序中类多一点的话,速度相当的慢。还好我不需要每天分析我的代码。忍受一两次也就行了。谁让我现在的项目中有好百十来个类呢。
嗯,靠着这个工具,我找到了我的代码中最为耗时的几个函数,感觉有点出乎意料啊。这就开始进一步分析去了 :)
没有评论:
发表评论