日期:2014-05-20  浏览次数:20690 次

请教关于JAVA语言的性能
我主要学的编程语言是JAVA,我想了解一下JAVA的性能。由于我没做过大型项目,不知道项目做大以后的性能到底如何,所以我想请教一下,尤其是知道JAVA、jvm底层原理和做过大规模项目的人来说一下。


对于各类应用程序和系统组件的开发,JAVA速度慢于C/C++是质上的问题还是量上的问题?

所谓质上的问题,就是说能力上缺少了很多的东西,比如mysql和oracle相比,运行速度快而简单,但是缺少某些功能特性,那些功能特性在小型数据库上根本用不上,但是当数据库和程序规模无限扩大的时候,没这些功能和特性的缺少导致其性能和稳定性下降,甚至导致有些任务在大规模项目中mysql做不了,或者代价无法承受。

所谓量上的问题,就是说速度慢、耗资源可以控制在一定范围以内,比如小型项目,会多耗80%的CPU和内存,而大型项目,功能和性能特性其实也不会有改变,只要程序设计的好,理论上仍然是多耗80%的CPU和内存,不会因为规模的扩大而导致缺少某些必要的性能,或者是消耗的资源成倍增长,甚至完全无法完成任务。

另外我还想请教一下,具体是哪些类型的操作会导致JAVA性能差,如何避免这些缺陷,或者说哪些情况下可以避免或者较少导致这些缺陷?
很多人都说JAVA开发WEB好,其实我觉得WEB程序模式比较单调,而且我觉得JAVA这方面的优势其实只是因为SUN较早的投入在了WEB领域,导致JAVA开发环境很早就拥有了成熟的库支持以及使用环境,其他WEB发展晚的语言追赶这种环境代价太大,而且JAVA在WEB开发中已经是一种标准,但是从原理的角度,如果C++较早的投入到WEB开发,设计出类型JSP和配套的框架,其实也不会有什么劣势。JAVA最大的优势有2个:我觉得一个是在J2EE上有很多类库和配套功能,但是这个还是可以被其他语言赶超的,只是赶超起来比较困难而已,二是JVM,这是JAVA最核心部分,使得程序员不必关心硬件环境,简化了很多操作,提高了开发效率,其实也是劣势,因为不能操作硬件。大家最常说的可移植性其实算不上什么巨大优势,因为用统一标准写的C++也是几乎可以在任何平台编译,至于说少数另类CPU,我觉得始终是要被INTER和AMD的指令集所同化的。

------解决方案--------------------
java 的运行速度 要比 c++ c 慢些
------解决方案--------------------
至少之前测试tomcat的时候,每秒几千条数据还是可以的。
------解决方案--------------------
内存方面,自己写程序多注意就行了,java有垃圾回收机制。速度方面,慢一点但是也很快。
现在是硬件发展快于软件发展,所以java成为了主流。
我觉得C语言干的事情无非就是在改变数据的大小和存放地址...
java就像赋予了界面的游戏... 操作方式也跟C完全不一样了
------解决方案--------------------
好像有直接运行java字节码的CPU,
但是没成气候