由于最近作项目迁移,迁移以后发现有些地方居然变慢了!须要一个好的Profiler工具,定位最为耗时的地方。在翻淘宝中间件团队博客http://rdc.taobao.com/team/jm/ 的时候发现了TProfiler,因而试用了一下。shell
整体来讲使用还算简单,文档虽说不上面面俱到,可是仍然是能让人上手了。工具
比较重要的是配置文件,有几个注意点:测试
配置文件须要全部属性完整,否则会报"IllegalArgumentException source can't be null"。code
profile.properties
有一个样例,在man/resources目录下。中间件
eachProfUseTime = 5 #表示每次profiler的时间,一次profiler结束后,写入到tprofiler.log文件中 eachProfIntervalTime = 50 #profiler的间隔文档
TProfiler是一个线上profile工具,之因此profiler间隔很大,是为了避免影响线上业务。建议在测试环境,将eachProfIntervalTime设置成1或者0,eachProfUseTime尽可能调大,这样比较好看结果。get
还有一个client,能够作flushmethod等操做。若是不主动flush,会等到时间周期结束后才写tmethod.log文件。博客
topmethod和topobject是比较有用的,使用如下命令生成:io
<!-- lang: shell --> ./tprofiler-log-analysis /data/tprofiler/logs/tprofiler.log /data/tprofiler/logs/tmethod.log /data/tprofiler/logs/topmethod.log /data/tprofiler/logs/topobject.log