也谈什么时候Java比C++快

 

刚打开iteye就看到这个标题“Java什么时候比C++快”,觉得很好笑。

 

你要比,就比同等水平的基础上的相比,笨蛋写得C代码和C++代码,去和高手写的Java代码比效率,有什么意义呢?

 

我是写密码算法的,深刻知道算法C和C++实现和Java实现之间的效率差,甚至也比对过C代码和汇编代码的效率差,计算机是个死的东西,再怎么优化,Java也就是和C效率相当,也没有见过超越C的(是否能超越C++?)因为Java上的优化,C和C++也可以照做。

 

Java是成也GC,败也GC,不担心内存泄露是好事,但是大量垃圾不能及时回收,或回收大量垃圾带来的卡顿非常糟糕,这都是见仁见智的一些点。

 

但是存在一种场景,就是一个软件、一个程序中,计算不是最主要的效率影响因素,很大部分的运行时间消耗在网络IO、磁盘存取、人机交互等等地方,这样的情况下,Java实现和C/C++实现,总体效率是差不多的,因为再快的计算也被这些环节抹平了。这时候,Java易上手的优势就体现出来了。这才是Java的优势。

 

Java的优势在于OO,面向对象的分析和设计,以接近人类的理解模式和思考模式来设计程序。运行效率不是Java的首要目的。在提供了大量好用的API和拥有大量的开源组件后,在”一次编译,到处运行“这一目标大致实现后,开发效率比运行效率更加吸引人们的注意力。

 

 

你可能感兴趣的:(java,C++)