Closed 1075551055 closed 7 years ago
是不是执行时间未到或者被织入后的代码未被执行到 可以开启debug日志看看
我们也有这个问题,TProfiler.log为空,只有tsampler.log有数据。
这是因为profile.properties中includePackageStartsWith配置错误,导致transform未执行
看完源码才发现,包名称com/sun前缀的类全部被排除,而不是com/sun/,恰好测试时用的包前缀是com/sun*/,测试多次发现tprofiler.log里面都是=号,看过源码才发现这个问题。使用的V1.0版本,刚看到master下面的好像已经修复了这个问题。
@simplelzl 这个具体怎么解决,可以详细点吗?这个问题头疼了几天,,麻烦了
@tfang111 是版本的问题吗?需要下载那个版本
@lishujian 请问问题解决了吗 我也有同样的问题
@simplelzl @xiaojun07 TProfilerWiki里面写的 includePackageStartsWith = com.taobao 进行profile的类包名(分号分割) 把com.taobao改成自己本地profile的类包名即可
@xiaojun07 建议不要v1.0的release,拉master下的源码自己编译打包,然后如果有特殊的需求自己改源码重新编译就好了
@xiaojun07 建议不要v1.0的release,拉master下的源码自己编译打包,然后如果有特殊的需求自己改源码重新编译就好了
用maven编译还是用idea自带的打包呐
应该是以下问题:该方法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; }
尝试多次运行应用,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)