主题:【讨论】解释执行类代码的性能有无可能达到甚至超过本机编译代码 -- 老兵帅客
共:💬64
一。阿康所说的多准备几个分叉是不现实的,因为执行路径树会迅速地膨胀从而导致可运行代码量的极度膨胀,这样稍大一些的程序会编译出大的不可想象的可执行文件来的,因此这个方案是行不通的。
二。动态编译的好处就是可以极端逼近理论上的最优化可执行代码,从而超过静态编译,因为后者缺乏运行经验,因此不可能得到理论上的最优化可执行代码。当然这个过程需要足够的时间和开销,因此比较适用于长时间运行的代码。
三。代码优化本身最好是在机器代码之上的某个合适层次来进行(机器代码级别太低了,很难做到比较大范围的优化),Java Byte Code/.Net IL正好提供了这个层次,这就是现代Meta Data对传统静态编译的优势所在。
本帖一共被 1 帖 引用 (帖内工具实现)
- 相关回复 上下关系8
压缩 10 层
不知道是不是可以这样说:C/C++编译好的程序就是CPU执行的具体指令了。 Highway 字600 2004-07-23 21:25:01
回复 老兵帅客 字671 2004-07-23 21:54:54
二进制代码不能变化似乎也不是绝对的吧 梦里依稀 字198 2004-07-23 21:34:59
回复
☹️如果你有多个可执行代码,那么CPU Load哪一个呢? Highway 字375 2004-07-23 21:45:45
比如说,可以有好几个image阿 梦里依稀 字113 2004-07-23 21:58:23