InjectFix icon indicating copy to clipboard operation
InjectFix copied to clipboard

简单测试了一下性能,InjectFix后面有没有优化的计划呀?

Open xtay opened this issue 4 years ago • 4 comments

100000次Vector3相加 InjectFix 5000ms ILRuntime 1200ms

但是ILRuntime感觉不好用,还是想用InjectFix 只是这个性能差的有点多呃。。。大佬后面有没有什么优化的想法呀?

xtay avatar Sep 29 '20 13:09 xtay

为啥只测试Vector3相加呢? ilruntime是有静态wrap代码的,而且vector也特别优化过; 而injectfix是纯反射。反射调用当然比静态调用要慢。(ps一下,正常反射应该比静态wrap慢一个数量级,你这个测试数据反馈ILRuntime其实做得一般。) 这是由两者的定位决定了方案,injectfix是用来修复代码,因为不知道什么地方要修复,也不知道将来要调用什么,所以如果要静态wrap那将要把所有api都封装,那将会导致包量极大。而且实践中,由于修复往往是局部,所有反射也够用了。 而ILRuntime的思路和其他脚本方案是类似的,解析侧要调用原生侧什么api,大致已经确定了,所以可以生成静态wrap。

chexiongsheng avatar Oct 13 '20 07:10 chexiongsheng

你要是把ILRuntime的vector相关的静态wrap代码删了,迫使他用反射,我相信你的这个测试数据应该会相差不多,甚至大概率是ILRuntime更慢。

chexiongsheng avatar Oct 13 '20 07:10 chexiongsheng

你要是把ILRuntime的vector相关的静态wrap代码删了,迫使他用反射,我相信你的这个测试数据应该会相差不多,甚至大概率是ILRuntime更慢。

你可以测试一发,贴个数据

chexiongsheng avatar Oct 13 '20 07:10 chexiongsheng

你要是把ILRuntime的vector相关的静态wrap代码删了,迫使他用反射,我相信你的这个测试数据应该会相差不多,甚至大概率是ILRuntime更慢。

你可以测试一发,贴个数据

感谢大佬指点,我再研究研究哈

xtay avatar Nov 05 '20 03:11 xtay