西西河

主题:【原创】总复老兵:解释执行类代码的性能有无可能达到甚至超过本机编译代码 -- Highway

共:💬9 🌺2 新:
全看分页树展 · 主题
家园 【原创】总复老兵:解释执行类代码的性能有无可能达到甚至超过本机编译代码

长话短说,把我的意思再强调一下。

1。解释执行类代码的性能一定会超过本机编译代码是一个预言。现在还没有做到。将来能否做到,什么时候可以做到我们还需要观察。

2。解释执行和编译执行由于工作性质的不同而呈现出不同的特点。因该说各有长处。就现在而言,编译代码在总体上仍然占有优势。但解释执行性能提升空间还很大,我们有理由对它的前途乐观。由于解释执行类语言在其他方面的优势,微软,SUN已经将开发重点转移了过来。微软的下一代操作系统,数据库系统都是build aronund managed code的。看来微软对managed code是很有信心的。

3。解释执行类代码在某些情况下的优势不能扩大而覆盖整个程序的life cycle。如下面所以,Hotspot能起作用的只是bytecode execution part。这一部分的比重将极大的影响程序的总体性能。所以Java最后成功的地方是back end,而不是最开始“让网络活起来”的Applet以及其他front end (AWT,Swing and so on)技术。Back end application是Java扬长避短的最好场所。

点看全图

外链图片需谨慎,可能会被源头改

4。微软的.NET情况又有些特殊。一方面,managed code比以前纯解释性的语言,如VBA,VBScript(ASP中广泛使用的)有了很大的性能提高,但如果和C++,WINAPI等等相比,性能还有一定的劣势。但看样子微软是把宝押在.NET上了。除了最底层的一些service外,微软今后的目标是尽可能将所有的产品逐步.NET化(所谓的.Netlization)。

5。.NET的优化技术和SUN Java不是很一样。就我看到的资料而言,我觉得Sun的Hotspot在理论上要比微软.NET的JIT更好。当然哪个产品更好是另外一回事。

6。最后说一点,Java和.NET是分别由两个编译语言高手领导创建的。一个是来自Sun的C/C++老兵,一个出身于Borland的Pascal大师。Java和.NET不意味着对编译语言的否定,只是CS向前迈进的又一个脚步。


本帖一共被 1 帖 引用 (帖内工具实现)
全看分页树展 · 主题


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

Copyright © cchere 西西河