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

houzf for 精准测试 · 2020年10月10日 · 最后由 Keen 回复于 2023年04月12日 · 3657 次阅读









共收到 9 条回复 时间 点赞
test6054 回复

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

hacrun 回复

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

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

matt gong 回复

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

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

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

郭文明 回复

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

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

顶顶~辛苦出实践文档

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