We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
首先谢谢你的建议。下面我会解释为什么我没有使用
本项目用到反射的地方主要是初始化的地方,其他地方的反射基本就一次,第二次就有缓存了 后者是没啥问题的,就算 bufferknife 也还是有一次反射去寻找实现类的。 可能你觉得性能有问题的地方应该是初始化,加载各个模块的地方了。 这里讲道理确实有些不好,奔着养最好的性能上考虑,这里确实应该利用 gradle 插件去做这件事。但是我一开始没有考虑这样做的原因有以下几点:
再一次感谢你的反馈,谢谢。期待你的其他反馈!
From gitme iOS
The text was updated successfully, but these errors were encountered:
👍多谢回复,只是提供个思路:) 加油~
Sorry, something went wrong.
这点我感觉确实可以优化, 因为那块对于追求性能的人就会特别难受. 还是希望有空优化下的, 尽量不要用反射. 我测试出来也有几十毫秒的延迟
@robotAndroidCode @xiaolanger
很抱歉, 重新打开这个 issue. 上次你们提了 issue 之后, 我心里一直留了一个疙瘩, 在中间这段时间, 我学习 Android Gradle 插件 + ASM字节码修改. 终于把初始化的时候反射的地方都可选的可以使用 new 对象的方式. 原本我看了你们的 issue 之后, 以为这个优化是要去做的. 但是事实狠狠的打了我的脸. 下面请看我测试的两组数据。
下面是测试的 20 组数据, 启动完毕就杀死重新启动. 所以测试是准确的!
打印的数据格式是以下两种.
ASM字节码的打印格式:
使用反射的打印格式:
从数据上看到, 速度上确实有所提升! 我也不去算平均值了, 看上去整体性能提升了 2-4 毫秒!
所以从简单分析来看, 我的框架在初始化的时候使用反射的次数确实有些多, 但是从数据的测试上看, 性能没有实质性的突破, 假如从 几十毫秒降低到几毫秒, 那我觉得这件事我做的很有意义, 但是目前看来. 这个优化很失败.
如果你们有自己的测试数据, 欢迎讨论. 我用这段时间验证了这个事情,字节码优化的方式我这边也支持了. 这个 issue 我终于可以安心的关闭了, 谢谢大家
No branches or pull requests
首先谢谢你的建议。下面我会解释为什么我没有使用
本项目用到反射的地方主要是初始化的地方,其他地方的反射基本就一次,第二次就有缓存了
后者是没啥问题的,就算 bufferknife 也还是有一次反射去寻找实现类的。
可能你觉得性能有问题的地方应该是初始化,加载各个模块的地方了。
这里讲道理确实有些不好,奔着养最好的性能上考虑,这里确实应该利用 gradle 插件去做这件事。但是我一开始没有考虑这样做的原因有以下几点:
再一次感谢你的反馈,谢谢。期待你的其他反馈!
From gitme iOS
The text was updated successfully, but these errors were encountered: