主题:【讨论】解释执行类代码的性能有无可能达到甚至超过本机编译代码 -- 老兵帅客
其实这种技术既不是微软发明的,也不是Sun的独创,当年的Bull机器(记得是Bull7000)就有这样的能力。
这个方法的核心就是对一段时间的执行特点作Profiler,它假定这个执行特点是稳定的,这样可以缩小工作集的大小,从而在一定程度上提高性能。但是其代价就是Profiler的开销,如果Profiler是由硬件完成的,并行可以减少性能损失;而如果Profiler完全靠软件来做,执行特点的稳定程度就成为至关重要的考虑因素了,否则就有可能得不偿失。
在软件中经常存在这样的情况:一个程序中不同的执行路径存在着不同的执行概率。对于概率差距比较明显的程序,上述优化方法的效果将会比较明显,否则意义不是很大。
忽然想起来,PC上似乎也存在一种优化器,可以根据程序的执行特点作Profiler,然后优化原有的.obj文件来生成新的可执行文件,这个思想和上面所讨论的是类似的,可惜那个优化器的名字想不起来了。
- 相关回复 上下关系8
😂不是这么个道理。C/C++的代码一旦编译生成,就是一个二进制文件了。 Highway 字361 2004-07-23 20:43:04
@@ ppw 字86 2004-07-23 20:47:12
😉我给你找一下原文,我记得是在MSDN看到的。 Highway 字450 2004-07-23 19:53:19
回复
微软的这种做法有些不同。它的产品,比如说是SQL Server, Highway 字192 2004-07-23 20:18:49
这个和上面说得好像不是一回事情 老兵帅客 字67 2004-07-23 20:26:28
😉Sorry,有几个帖子贴错地方了。 Highway 字47 2004-07-23 20:32:44
那就是说是项目级别的Profiler,而不是运行级别的Profiler 老兵帅客 字82 2004-07-23 20:46:59