alibaba / TProfiler

TProfiler是一个可以在生产环境长期使用的性能分析工具
GNU General Public License v2.0
2.38k stars 923 forks source link

TProfiler.log的内容为空 #33

Closed 1075551055 closed 7 years ago

1075551055 commented 8 years ago

尝试多次运行应用,TProfiler.log的内容只出现莫名其妙的“=”号,并没有像wiki中的说明那样,从而导致无法分析profiler log命令(执行类似命令生成的文件什么内容都没有: java -cp tprofiler.jar com.taobao.profile.analysis.ProfilerLogAnalysis d:/tprofiler.log d:/tmethod.log d:/topmethod.log d:/topobject.log)

jlusdy commented 8 years ago

是不是执行时间未到或者被织入后的代码未被执行到 可以开启debug日志看看

simplelzl commented 8 years ago

我们也有这个问题,TProfiler.log为空,只有tsampler.log有数据。

simplelzl commented 8 years ago

这是因为profile.properties中includePackageStartsWith配置错误,导致transform未执行

TonyFang111 commented 7 years ago

看完源码才发现,包名称com/sun前缀的类全部被排除,而不是com/sun/,恰好测试时用的包前缀是com/sun*/,测试多次发现tprofiler.log里面都是=号,看过源码才发现这个问题。使用的V1.0版本,刚看到master下面的好像已经修复了这个问题。

lishujian commented 6 years ago

@simplelzl 这个具体怎么解决,可以详细点吗?这个问题头疼了几天,,麻烦了

lishujian commented 6 years ago

@tfang111 是版本的问题吗?需要下载那个版本

xiaojun07 commented 6 years ago

@lishujian 请问问题解决了吗 我也有同样的问题

HW2hell commented 6 years ago

@simplelzl @xiaojun07 TProfilerWiki里面写的 includePackageStartsWith = com.taobao 进行profile的类包名(分号分割) 把com.taobao改成自己本地profile的类包名即可

TonyFang111 commented 6 years ago

@xiaojun07 建议不要v1.0的release,拉master下的源码自己编译打包,然后如果有特殊的需求自己改源码重新编译就好了

zhaoyang-hub commented 5 years ago

@xiaojun07 建议不要v1.0的release,拉master下的源码自己编译打包,然后如果有特殊的需求自己改源码重新编译就好了

用maven编译还是用idea自带的打包呐

Yizuifangxiu commented 4 years ago

应该是以下问题:该方法com.taobao.profile.instrument.ProfTransformer#transform会先判断是否可以用mysql方式注入,由于使用的是静态变量,com.taobao.profile.dependence_query.mysql.MysqlProfFilter 共用了父类 com.taobao.profile.config.ProfFilter里的com.taobao.profile.config.ProfFilter#includePackage属性,导致配置在includePackageStartsWith里的包名都会以mysql方式注入。可以直接去掉com.taobao.profile.instrument.ProfTransformer#transform方法里的这几行代码

//如果可以注入mysql成功;则不再继续注入 byte[] temp = transform4Mysql(loader, className, classBeingRedefined, protectionDomain, classfileBuffer); if(temp!=null){ return temp; }