五千年(敝帚自珍)

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

共:💬64
全看分页树展 · 主题 跟帖
家园 C/C++的编译器在编译程序的时候,看到的只是Source code。

它不可能预见程序在编译后会怎么运行,有什么具体特点,因为那是Run-time的行为。这些信息只有在程序运行的时候,JVM/CLR才可以获得,这是动态优化的根据。

这不是说C/C++编译器不够聪明。这是由于C/C++这种语言的特点决定的。它避免了很多运行时的开销(C++还有一些运行时的开销,所以C++比C还要慢一些),但同时也失去了运行时的许多有用的信息。一种观点认为基于这些信息的优化技术一定会超过编译时的静态优化。这种理论在局部取得了成功,但就大面积而言,还没有!

全看分页树展 · 主题 跟帖


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

Copyright © cchere 西西河