我已经多次看到,AOT可以运行一些更昂贵的优化,这些优化需要花费太长时间才能被JIT使用。但我从未见过它说明了这些优化究竟是什么。所以我想知道,这些优化是什么?
发布于 2013-01-03 22:34:38
我想到了注册分配。
根据维基百科的说法:
图着色分配器产生高效的代码,但它们的分配时间很长。在静态编译的情况下,分配时间不是一个重要的问题。在动态编译的情况下,例如即时(JIT)编译器,快速注册分配是非常重要的。Poletto和Sarkar提出的一种有效的技术是线性扫描分配。此技术只需要对变量活动范围列表进行一次传递。寿命短的范围被分配给寄存器,而那些寿命长的区域则倾向于溢出,或者驻留在内存中。结果平均只比图着色分配器低12%。
此外,我最近还遇到了堆叠问题关于JIT编译器不进行优化的问题。不确定编译时间是否是原因,但可能仍然值得检查。
https://softwareengineering.stackexchange.com/questions/181425
复制相似问题