五千年(敝帚自珍)

主题:【讨论】解释执行类代码的性能有无可能达到甚至超过本机编译代码 -- 老兵帅客

共:💬64
全看分页树展 · 主题 跟帖
家园 评论

C++多了RTTI,Java多了Reflection API,.Net也多了类似的东西。

我想对于特定类型的程序来说,Meta Info和动态优化的确有可能导致比静态优化更好的代码。但是这个结论不具有可推广性,因为随着代码/工作集的扩大,Meta Info的作用会被稀释,而且很多时候动态优化并不能够显著缩小工作集的大小。

说到底,任何代码到最后都是以机器码的方式来运行,因此任何优化最后都不过是机器码的优化。现代静态编译器的优化已经很接近纯手工汇编码了,因此很难想象动态优化可以产生超过这个极限的结果。

也许,一个理论上最好的代码产生方式就是可以做动态分析和优化的多迭代静态编译优化器。假定存在这样一个东西,它将不是HotSpot这类技术所能够比拟的,因为中间码到机器码的转换是后者无法避免的弱点。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河