主题:【讨论】解释执行类代码的性能有无可能达到甚至超过本机编译代码 -- 老兵帅客
共:💬64
C++多了RTTI,Java多了Reflection API,.Net也多了类似的东西。
我想对于特定类型的程序来说,Meta Info和动态优化的确有可能导致比静态优化更好的代码。但是这个结论不具有可推广性,因为随着代码/工作集的扩大,Meta Info的作用会被稀释,而且很多时候动态优化并不能够显著缩小工作集的大小。
说到底,任何代码到最后都是以机器码的方式来运行,因此任何优化最后都不过是机器码的优化。现代静态编译器的优化已经很接近纯手工汇编码了,因此很难想象动态优化可以产生超过这个极限的结果。
也许,一个理论上最好的代码产生方式就是可以做动态分析和优化的多迭代静态编译优化器。假定存在这样一个东西,它将不是HotSpot这类技术所能够比拟的,因为中间码到机器码的转换是后者无法避免的弱点。
- 相关回复 上下关系8
压缩 3 层
这么说吧, 在真正要速度的人群中 ppw 字60 2004-07-23 20:54:26
呕, 是吗? ppw 字171 2004-07-23 20:39:14
😉C/C++的编译器在编译程序的时候,看到的只是Source code。 Highway 字438 2004-07-23 20:30:01
评论
😉这个观点我同意。因为说到最后还是机器代码在执行。 Highway 字625 2004-07-23 21:01:18
这种比较没意义 ppw 字40 2004-07-23 20:35:38
😮再说一遍,C/C++的代码一旦编译生成,就是一个二进制文件了。 Highway 字267 2004-07-23 20:46:28
二进制就是死的啊 ppw 字17 2004-07-23 20:48:28