研发效能 精准测试方案 [部分源码整理中]

houzf for 精准测试 · 2020年10月10日 · 最后由 伊蓑 回复于 2022年03月10日 · 1292 次阅读









共收到 8 条回复 时间 点赞

和我之前做的一个 demo 思路一样,可以一起交流

目前我这边分析方法调用链是通过字节码扫描的方式, 使用 asm。 分析过程中发现, 方法调用分析出来的如果是 spring 自动注入的 bean 或者 声名的是父亲类 (实际 new 的子类的对象, 调用的子类的方法), 这时候分析出来的调用都是父类的方法, 即分析不出来子类方法被调用的情况。特别是有多态的情况。 这种如何解决呢?

test6054 回复

可以可以,我最近把自己写的一些代码放在 github 上,可以一起搞搞

matt gong 回复

asm 的方式之前尝试了一下,发现遇到的变动问题太多,进没有过多的深入,所以采用了静态分析的方法。不过你可以请教一个人或者先看看他的公众号:bug 虫洞栈

想了解下,在 git diff 方式下进行比较和生成调用链,是通过手动触发还是自动触发的,后续的解析,包括的 git clone/checkout/pull 和代码编译需要花费的时间大约是多少?

hacrun 回复

整体 git diff 出结果的时间很短的,但是如果你链接的 git 比较耗时,那就会占用大部分时间。我在公司使用内容很快的,没有性能瓶颈。触发形式可以自己决定,既可以定时根据代码提交情况出报告(可以结合 jenkins),也可以根据实际需求手动触发,总之这些问题可以平台化后考虑,前期核心实现更加关注技术的适用性。

有没有开放源呢?JGIT 获取的差异代码是如何做差异准确定位到方法的?

郭文明 回复

JGIT 获取变更代码的时候确实有点恶心,只会显示新增或删除的代码块。我用的方法是先解析这个类所有方法所在的行数,然后再计算变更的代码属于哪个行数,那就可以精准定位到方法

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册