Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

性能不行,不支持增量,也没做注解解析的过滤操作 #32

Open
Sanjay-F opened this issue Jul 19, 2019 · 6 comments
Open

Comments

@Sanjay-F
Copy link

Sanjay-F commented Jul 19, 2019

不知是否你们代码量不多,或者对编译耗时这个要求不高,这个插件对于大点项目的耗时是很夸张的。

  1. 假增量,在Transform里面写了支持增量,但实际并没有这么做,还是全局遍历

  2. 读所有问题来做解析注解完全没必要,可以利用apt生成份包含有这个注解的类,从而来加速解析速度,每个类都找javassist去解析判断,性能很差的,大海捞针一样。

@zhiyu25
Copy link

zhiyu25 commented Aug 23, 2019

希望作者能优化楼上提出的问题

@PrototypeZ
Copy link
Owner

感谢建议,事实上我已经在着手重构,新的版本会在API兼容的基础上,使用性能更好的实现方案 :)
对于目前的版本,编译耗时主要在全量编译的过程中,个人实践 20+ 模块的编译过程中,耗时可接受,对于模块单独开发的流程则不会有任何影响。本人开发项目流程开发中,已经很少使用全量编译,大多数时候都是在模块单独开发,所以当前版本对日常开发的影响并不大。

@binbinla
Copy link

作者你好,请问性能优化计划有什么进展吗?

@bugyun
Copy link

bugyun commented Jan 9, 2020

你好 关于性能问题,可以参考或者使用下面的开源库:
https://github.com/bugyun/SpiderMan/tree/master/SpiderMan-plugin-core
优势:
优化文件处理速度
启用多线程来优化速度
比市面上相关插件速度快1倍以上
避免处理各种文件
只需要继承几个类就可以完成 ASM/Javassist 的代码注入
支持 ASM 和 Javassist

@qinweiforandroid
Copy link

大家可以不使用注解,接口的初始化可以自行实现,效率是最高的, 自己初始化接口也没多少工作量的

@hemw
Copy link

hemw commented Oct 28, 2024

不知是否你们代码量不多,或者对编译耗时这个要求不高,这个插件对于大点项目的耗时是很夸张的。

  1. 假增量,在Transform里面写了支持增量,但实际并没有这么做,还是全局遍历
  2. 读所有问题来做解析注解完全没必要,可以利用apt生成份包含有这个注解的类,从而来加速解析速度,每个类都找javassist去解析判断,性能很差的,大海捞针一样。

的确目前编译性能对稍大一点的项目不太友好

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants