您将如何改进 Dalvik?Android 的虚拟机
-
06-07-2019 - |
解决方案
- 更好的垃圾收集:至少压缩(以消除当前遇到的内存碎片问题),理想情况下,在进行收集时自己的CPU密集程度较低(以减少“我的游戏帧率吮吸”投诉)
- JIT,正如你引用
- 有足够的文档,当与NDK结合使用时,有足够疯狂的人可以将Dalvik字节码编译为AOT编译选项的本机代码
- 让它与Android本身分离,以便其他项目可以尝试使用它,社区贡献可能会以更大的数量和更快的速度获取 醇>
我确信如果你需要,我可以提出其他想法。
其他提示
即时生产。关于它没有帮助的东西都是一堆废话。您可能会对 JIT 的代码更有选择性,但本机代码性能的 1/10 始终会受到限制
不错的GC。现代一代的垃圾收集器没有大的口吃。
更好的代码分析。在很多情况下,不需要进行分配/释放、不需要持有锁等等。它允许您编写干净的代码,而不是进行机器更擅长的优化
理论上,大多数情况下,大多数高级语言(Java、Javascript、python...)应该在本机代码性能的 20% 以内。但这需要平台供应商花费 100 多个开发人员年。Sun Java 正在变得越来越好。他们也为此努力了10年。
Dalvik的一个主要问题是性能,这听起来很糟糕,但我最喜欢的一件事就是添加更多语言。
JVM已经有社区项目在平台上运行Python和Ruby,甚至为它开发了Scala,Groovy和Closure等特殊语言。很高兴在Dalvik平台上看到这些(和/或其他)。 Sun也一直致力于Da Vinci机器,这是JVM的动态类型扩展,它表明了与“一种语言适合所有人”的重大转变。哲学Sun在过去的15年中一直追随。
不隶属于 StackOverflow