注册 | 登录

游侠NETSHOW论坛





游侠NETSHOW论坛 游侠NETSHOW论坛 游侠PC游戏综合讨论区 为何java语言执行效率比c++慢20倍还有人用呢? ...
楼主: zhaotianyu
打印 上一主题 下一主题

[讨论] 为何java语言执行效率比c++慢20倍还有人用呢? [复制链接]

帖子
16272
精华
0
积分
8184
金钱
4429
荣誉
1
人气
148
评议
0

61#
发表于 2011-6-7 01:35:01 |只看该作者
晕,只是闲聊、又不是啥专业场合还要专家才有资格发言吗?就算在csdn和国外的codeproject、codeguru那些专业论坛也见过很多更白的提问和回答,那里气氛都很好,没见谁跳出来说风凉话、谁不是从小白过来的。[哇哈哈]

低级趣味无罪 胡说八道有理

使用道具 举报

帖子
4833
精华
3
积分
3417
金钱
6792
荣誉
40
人气
2
评议
0

62#
发表于 2011-6-7 11:29:55 |只看该作者
纯数制计算的话,c#和java的效率在c++的1.5倍左右,如果涉及一些底层调用,可能效率差距会更大。
c++标准库极为简陋,以前微软还在c++上用了点心,在微软把注意力转移到.net过后,已经很少有大公司提供通用的c++库了。由于c++基础设施的匮乏,小公司如果选择用c++做开发,很多模块仍然需要自己编写,但是这样的程序质量远逊于对应功能的jvm或clr模块。
对于游戏,桌面应用程序(比如qq、迅雷这样的常驻内存程序,性能和内存占用的要求是很高的),如果想要做到一流,用c++甚至c语言,是必须的。往理想了说,用java做的游戏是30帧的话,用c++能够提高到60帧,这一倍的性能差距给用户的体验是完全不同的。做游戏上,其实微软早就推出了managed directx和xna等技术,只要不是做大型游戏,性能上完全不是问题。
对于企业应用和网页等,他们或者并没有极为苛刻的性能需求,或者要求高度并发,或者追求极端的稳定性,出于这些原因可能java是更适合的。另外的java有几十年来积累的标准库,作为托管代码无内存泄漏和越界访问之忧,java本身的开源和庞大的开源社区,这些都是选择java的理由。
太多中小企业在部分应用上选择java或者c#甚至脚本语言。优秀的c++程序员太难找,培养周期过长。大部分的项目,java和c#能够给他们提供大量的通用模块极大的缩短开发周期和提高稳定性。
我的经验,除非满足以下任意情况(暂时想到的),否则选用c++往往不是最优的:1.项目成员都是c++高手,具备扎实的功底和经验。微软和谷歌就是例子,由于他们是底层供应商,所有的模块都敢于用c++编写。2.项目较小,整个开发周期内,参与的成员在10人以内。在国内两三个人给小公司做项目很常见。3.软件有极高的性能需求。对于游戏这种一跑起来cpu就100%(关闭垂直同步)的软件,甭管项目成员c++水平如何,赶鸭子上架也得用c++(游戏领域c++搭配lua是很常见的,前者做引擎,后者做业务)。
我上面讨论的主要还是windows下的情况。
关于性能,java和c#在标准库的层次有完备的多线程支持,更易于编写并发程序,更能利用多核优势,c++在这方面相对困难些。对于已经编写完成的软件,c++程序随着硬件的进步能够运行的更快,但由于c++多线程无错程序的编写困难和cpu朝着多核的方向发展,这种免费午餐已经越来越难得了。而java和c#,由于项目代码之下还有一层虚拟机,抽象层次更高,编写好的java程序除了能够通过硬件进步得到福利,虚拟机的不停优化也能让程序运行的更快。
总之存在即是合理的,近10年来java在tiobe编程语言排行上一直雄踞3甲,最近更是把c++甩开很多,更多的项目使用java比c++更合适。
一个新项目,根据需求选择适合的语言和技术进行开发,远比不考虑需求一味用c++蛮干来的要好。对专业程序员来说,学习新语言相对是很容易的,技术业务才是重心。

正しき者の唇は叡智を陈(の)べ
その舌は正义をものがたる
试练に耐えうる者は幸いなり
何となれば、いったん评価されしときは
人生の王冠を受くるべし
主よ、圣なる炎よ、怜れみ给え
おお、いかに圣(きよ)く、いかに静けく
いかに慈悲深く、いかに情厚く
おお、纯洁なる白百合

使用道具 举报

帖子
1498
精华
0
积分
749
金钱
2571
荣誉
0
人气
0
评议
0
63#
发表于 2011-6-7 12:21:36 |只看该作者
没想到游侠也看到讨论编程语言的帖子。我用java开发1年多了,但对jvm都还不怎么了解。。。也许像ls那位说的,其实现在搞编程在业务方面下的功夫会更多。
test

使用道具 举报

帖子
84
精华
0
积分
42
金钱
5807
荣誉
0
人气
3
评议
0
64#
发表于 2011-6-7 14:49:02 |只看该作者
简单的来说,以现在的cpu速度,那些时间已经可以忽略不计了

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

手机版|Archiver|游侠NETSHOW论坛 ( 苏ICP备2023007791号 )

GMT+8, 2025-10-19 07:15 , Processed in 0.319083 second(s), 10 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

分享到