到底你说的“动态优化”是什么呀? 我开始的理解是.在运行的时候才能确定的优化, 比如:一个long型的数据在运行的时候因为值较小, 就使用int的空间存储和计算提供效率。 这类优化是可以使用C++实现的。 我搜索了一些,"动态优化”------有下面的说法: ---------------------------------------ref begin 动态优化,提前编译为机器码的技术(Dynamic Optimization,Ahead Of Time) 动态优化技术充分利用了JAVA源码编译,字节码编译,动态编译和静态编译的技术。 其输入时JAVA的原码或字节码,而输出是经过高度优化的可执行代码和个来动态库的混合 (Window中是DLL文件,UNIX中是共享库.a .so文件) --------------------------------------ref end 如果按这个说法,C++在执行以前,就提前编译为了机器吗,可谓“彻底的动态优化了” 怕自己的理解有误, 特请教之
>无意间掀起的一次对于语言的讨论 >实在是抱歉之极 >其实,我所说的所谓的“纯静态语言”,也许没有这个东西 >毕竟我对c++了解不多 >但是,c++是静态编译的总没错吧 >那么他如何能够做到动态优化呢?也就是运行期优化产生新的优化过的二进制代码? >这个我不了解,但是我觉得是不能的 >如果真的可能的话,是不是也是一个类虚拟机的实现呢? >其实,如果c++也有虚拟机层的华,那么其实思想不就一样了。 >还有,我觉得java的跨平台性,是一个双刃剑, >在某些场合,一次编译到处运行 >倒不如一次编写,到处编译 >所以,我刚才引用了一句话啊 >In most cases, Java is faster. >> "My feeling is that it is developer ignorance or laziness or that leads >> to code which is _*either slow to write or slow to run*_." cuichao wrote: > 什么是“纯静态语言”? 真是长见识了。讨论的时候请不要搞笑 > java采用动态优化的策略, 对技术这个不了解, > 但C++肯定能实现这种技术,甚至可以做成类库,大家来重用。 > > C++是不跨平台,许多C/C++可以使用的库是跨平台的。 > 比如你可以选择QT编写GUI程序,SDL库写图形游戏。 > > JAVA 有个虚拟机层,让JAVA跨平台。 > C++也有数不清的库,你可以选择是否跨平台。 > > 比较语言应该比较什么?有一些比较是没有意义的。 > 好的设计shell编程都可以比C的汇编快。但不能说shell效率高, > shell是C编写的,那么shell快也是因为C快了? > > 就像“动态优化的策略”这类技术,其实是和语言无关的。 > 就算使用JAVA实现了这个技术,也不能说是JAVA的。 > 就像不能说某种算法是某种语言的。 > > 你在一个新平台使用C语言实现了一个JAVA虚拟机, > 这个虚拟机的执行效率很高,你可以宣布:这是C效率高的原因。 > 这似乎也没法反对。这肯定比使用shell实现一个虚拟机效率高。 > > > > ----- Original Message ----- > >>> java采用动态优化的策略,这个是c++等纯静态语言无法做到的 >>> java可以智能的去优化一些代码,所以在server side我说他的效率高 >>> -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]