再论游戏开发语言

关于网上比较C++与JAVA的文章很多,在这边我还是要再啰嗦一下,毕竟也是原创的嘛。

 

本人做了3年游戏开发,有多年的JAVA与C++开发经验,有一点感触,写下来给有需要的人。

 

做网络游戏目前毫无疑问的C++占9成以上,我想大部分人选择它是因为他的效率,不过还有一些其他原因,跟风,对,中国人比较喜欢跟风与山寨,比如打听某某大作是用什么语言开发的呀,使用了什么类型的脚本啊,比较典型的就是模仿暴雪,中国什么山寨都有,技术选型也不例外。

 

客户端其实不用比较了,JAVA是真的不适合,因为他的跨平台特性,没有使用原生控件来绘制,效率自然低下。

服务器端还是需要好好的比较一下的。

 

1 C++ 速度快,掌握把控难,可用库较少,跨平台比较难,开发周期比较久,不稳定,不安全等特点。

2 JAVA 速度相当较慢  掌握容易  可用库非常丰富 ,跨平台简单,可以方便的利用64位linux系统的大内存,开发周期较短,更稳定,更安全,JNI技术可用在关键技术上使用native代码,更容易控制团队与全局。

 

首先C++与JAVA最大的不同当然是在内存管理上面了,C++的内存自己管理,而JAVA是通过垃圾收集器回收的。

C++可以使用指针定位方式获取收到的数据,JAVA大多是通过复制来实现的,虽然JAVA是复制底层是通过汇编实现的,很快,但是也会出现一个问题,大量的复制导致内存回收过于频繁,年轻代垃圾回收器频繁的工作,每次工作消耗的系统时间大概是5-15MS,在高并发的情况下,平局20秒就要回收一次。

 

目前C++开发的网游,能完全实现跨平台的使用64位技术的是少之又少,基本上90%都是windows上开发的。

而JAVA就可以利用它跨平台的优势,通过线程局部缓存,设定对象池,使用大内存等方案,是完全可以与C++抗衡的。

目前北京已经有几十家公司采用JAVA开发游戏服务器了,期待有更多JAVA开发的游戏大作出现!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值