淘宝Tprofiler工具实现分析
项目首页:https://github.com/alibaba/TProfiler 工具介绍 TProfiler是一个可以在生产环境长期使用的性能分析工具.它同时支持剖析和采样两种方式,记录方法执行的时间和次数,生成方法热点 对象创建热点 线程状态分析等数据,为查找系统性能瓶颈提供数据支持. TProfiler在JVM启动时把时间采集程序注入到字节码中,整个过程无需修改应用源码.运行时会把数据写到日志文件,一般情况下每小时输出的日志小于50M. 业界同类开源产品都不是针对大型Web应用设计的,对性能消耗较大不能长期使用,TProfiler解决了这个问题.目前TProfiler已应用于淘宝的核心Java前端系统. 部署后低峰期对应用响应时间影响20% 高峰期对吞吐量大约有30%的降低(高峰期可以远程关闭此工具) 同类对比 与同类开源工具jip对比 项目 TProfiler JIP 交互控制 支持远程开关和状态查看 支持远程开关等多种操作 过滤包和类名 支持包和类的过滤 支持包和类的过滤 低消耗 响应时间延长20% QPS降低30%(详细对比看上图) 同等条件下资源消耗较多,使JVM不断的FullGC;Profile时会阻塞其他线程 无本地代码 未使用JVMTI,纯Java开发 未使用JVMTI,纯Java开发 易用性 只有一个jar包,使用简单 模块多,配置使用相对复杂 日志文件