TProfiler

简介: 下载:访问 TProfiler 的 GitHub 主页,https://github.com/alibaba/TProfiler,点击 Clone or download 按钮的打开下载选项,点击该选项下的 Download ZIP 按钮将 TProfiler-master.zip 下载到本地。

下载访问 TProfiler 的 GitHub 主页,https://github.com/alibaba/TProfiler,点击 Clone or download 按钮的打开下载选项,点击该选项下的 Download ZIP 按钮将 TProfiler-master.zip 下载到本地。

安装:本地将下载后的 TProfiler-master.zip 解压缩,将 dist 目录下的 profile.properties 以及 dist/lib 目录下的 tprofiler-1.0.1.jar ftp 上传到远程服务器 /opt/tprofiler 目录下。

配置:编辑服务器 /opt/tprofiler/profile.properties 文件内容

#log file name
logFileName = tprofiler.log
methodFileName = tmethod.log
samplerFileName = tsampler.log

#basic configuration items
startProfTime = 9:00:00
endProfTime = 23:00:00
eachProfUseTime = 5
eachProfIntervalTime = 50
samplerIntervalTime = 20
port = 30000
debugMode = false
needNanoTime = false
ignoreGetSetMethod = true

#file paths
logFilePath = ${user.home}/logs/${logFileName}
methodFilePath = ${user.home}/logs/${methodFileName}
samplerFilePath = ${user.home}/logs/${samplerFileName}

#include & excludes items
excludeClassLoader = org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader
includePackageStartsWith =com.caucho;com.defonds;com.fasterxml;com.sun.jersey;com.sun.jmx;
org.apache;org.codehaus;org.jdbcdslog;org.mybatis;org.quartz;org.springframework
excludePackageStartsWith = com.taobao.sketch;org.apache.velocity;com.alibaba;com.taobao.forest.domain.dataobject

红色部分是我们修改后的内容,其它部分使用默认值。

启动:-javaagent:/opt/tprofiler/tprofiler-1.0.1.jar -Dprofile.properties=/opt/tprofiler/profile.properties

指令操作

查看 TProfiler 当前状态:

$ java -cp /opt/tprofiler/tprofiler-1.0.1.jar com.taobao.profile.client.TProfilerClient 127.0.0.1 30000 status

running

关闭 TProfiler:

$ java -cp /opt/tprofiler/tprofiler-1.0.1.jar com.taobao.profile.client.TProfilerClient 127.0.0.1 30000 stop
$ java -cp /opt/tprofiler/tprofiler-1.0.1.jar com.taobao.profile.client.TProfilerClient 127.0.0.1 30000 status
stop

开启 TProfiler:

$ java -cp /opt/tprofiler/tprofiler-1.0.1.jar com.taobao.profile.client.TProfilerClient 127.0.0.1 30000 start
$ java -cp /opt/tprofiler/tprofiler-1.0.1.jar com.taobao.profile.client.TProfilerClient 127.0.0.1 30000 status
running

刷出数据:

$ java -cp /opt/tprofiler/tprofiler-1.0.1.jar com.taobao.profile.client.TProfilerClient 127.0.0.1 30000 flushmethod

会将数据刷出到 ~/logs/ 目录下:TProfiler的日志.png

普通方法、线程统计:

$ java -cp /opt/tprofiler/tprofiler-1.0.1.jar com.taobao.profile.analysis.SamplerLogAnalysis ~/logs/tsampler.log ~/logs/method.log ~/logs/thread.log

top 统计:

$ java -cp /opt/tprofiler/tprofiler-1.0.1.jar com.taobao.profile.analysis.ProfilerLogAnalysis ~/logs/tprofiler.log ~/logs/tmethod.log ~/logs/topmethod.log ~/logs/topobject.log

上述命令刷出的 topmethod.log 部分结果如下:

com/defonds/core/ppts/common/support/JsonUtils:object2jsonString:123 13519 154 2083584
com/caucho/hessian/client/HessianURLConnection:sendRequest:156 15894 130 2072565
com/defonds/rest/core/client/proxy/ResourceJsonInvocationHandler:invoke:39 8123 113 921340
com/defonds/core/ppts/cache/service/impl/MerBankCfgServiceImpl:selectMerBankCfgByParams:72 54213 15 799322
com/defonds/core/ppts/incomes/biz/sinopay/service/impl/SinoPayBankReturnServiceImpl4Json:updateOrderSuccess:792 2495 176 438542

格式说明:方法信息 执行次数 平均执行时间(单位:ms) 全部执行时间(单位:ms)

 

目录
相关文章
|
2月前
|
运维 Java Nacos
nacos常见问题之配置不生效不加载shared-configs 配置如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
169 0
|
数据库 应用服务中间件 Dubbo
|
11月前
|
XML Java 数据格式
spring-boot集成spring-brick实现动态插件
spring-boot集成spring-brick实现动态插件
845 0
|
存储 JavaScript 安全
如何在 Node.js 中生成和使用 SSL 证书
如何在 Node.js 中生成和使用 SSL 证书
915 0
|
机器学习/深度学习 JSON 人工智能
IntelliJ IDEA中的神仙插件(写代码必备)(下)
IntelliJ IDEA中的神仙插件(写代码必备)(下)
493 0
IntelliJ IDEA中的神仙插件(写代码必备)(下)
|
Shell
SHELL中如何获得指定字符的位置及正确的截取动作
SHELL中如何获得指定字符的位置及正确的截取动作
291 0
|
机器学习/深度学习 安全 搜索推荐
如何提升项目交付中软件复用水平
软件复用是软件工程领域一个非常重要的话题,但如何进行有效合理的服用,需要理解复用的本质,并且经过一些顶层设计。本文介绍了不同的软件复用形式,以及各自的优缺点,论述在项目交付场景下合理的复用形式。
28833 20
如何提升项目交付中软件复用水平
|
缓存 运维 监控
Java 服务线上问题排查思路与工具使用
Java 服务线上问题排查思路与工具使用
|
缓存 安全 PHP
Semgrep结合GitLab实现代码审计实践-服务端
为了能让开发者时时刻刻关注安全问题,我在gitlab服务端放了一个钩子,这个钩子主要是将本次提交的代码文件进行了检测,遇到可能存在安全风险的问题将其输出出来,这样开发者能够对培训的内容有更深的感受,更注重编码时候的安全问题。
596 0
Semgrep结合GitLab实现代码审计实践-服务端
|
设计模式 负载均衡 Nacos
【SpringCloud-Alibaba系列教程】5.负载均衡
接下来的章节,White带着大家以微服务架构和设计模式落地实战的方式,进行讲解和实现SpingCloud的代码开发,本节将介绍一下Ribbon的使用。
601 0
【SpringCloud-Alibaba系列教程】5.负载均衡