经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » 游戏设计 » 查看文章
游戏编程:为什么C ++游戏开发比Java更好,其实是因为这两个点!
来源:cnblogs  作者:C/C++爱好者  时间:2020/11/9 15:15:38  对本文有异议

游戏开发是一个比较广泛的话题,说哪种语言更好其实不合适,应该是那种语言更适合那种层次的处理。在进行数据量比较大的游戏开发是,更占优势的无疑是C++这门编程语言!之所以这样讲,以我的经验来看主要是两个方面!

几年前,我用Java编写了一个过程3D建模应用程序,该程序能够处理数百万个多边形,它使用了智能分区系统,该系统生成线程以最佳利用所有CPU内核。如此繁重。

我可以肯定地说,Java,甚至C#进行海量数据计算的最大问题不是该语言解释的实际速度(您会想知道,但是这些语言的速度几乎与C ++一样快),但是内存管理和垃圾回收是影响游戏的关键因素。

缺乏对内存的控制权,导致软件消耗过多的内存,同时产生由垃圾收集器引起的不规则的滞后。当有足够的可用内存时,软件会平稳运行,但是达到限制(无论保留的内存块大小如何,都会达到限制)时,用户会遇到滞后,可能需要几分之一秒甚至几秒钟的时间,这是非常糟糕的。

由于缺乏对内存的控制,因此内存管理器有时会保存巨大的内存块,您知道这些内存块将永远不会再被使用,并且您无法像C ++中那样立即强制释放这些内存块。

结果是该软件的内存效率非常低。

自动垃圾收集系统对数据没有更高的语义理解,因此它使用在大多数情况下“最佳”工作的策略,但是这种策略效率很低。在C ++中,您可以根据特定用途分配和释放内存块,并使内存管理更有效。但是,您需要自己完成所有工作,并且搞砸的可能性更大,这会对C ++产生致命的后果。

在Java / C#中,您实际上不必关心。这是一个懒惰的程序员功能,但这是一种更安全的方法。我希望看到将来的垃圾回收器实现方案,以实现对内存的更多控制。您还可以使用自定义内存管理器自行完成所有操作,但这将是一个不切实际的解决方案,但值得考虑。

用Java或C#编写代码会产生更优美的代码,并使您比C ++更快地开发软件。

但是当需要为GPU提供海量数据并最大程度地优化所有内容时,最好使用C或C ++直接运行代码,这可以给您更多的控制权,并使您可以更好地优化代码的性能敏感部分。

将Java / C#用于逻辑和管理将是一个好主意(在某些可能是大多数代码的应用程序中)。只要您使用视频游戏引擎自己完成所有对性能敏感的工作,那么使用Java或C#等托管语言就可以了,甚至完全可以。

不幸的是,作为Unity开发人员,我可以告诉您,当您需要使用C#执行对性能敏感的计算时,可能会遇到这种情况,这可能表明该语言的局限性。

但是,您可以在应用程序中使用自定义内存管理器,并明智地设计代码,以使其更容易在语言解释器中更有效地运行,从而获得良好的性能,但是有时用C / C ++编写敏感部分可能会更好。

另外如果你想更好的提升你的编程能力,学好C语言C++编程,以便更好从事编程类工作(游戏开发)的话!那么你很幸运~

C语言C++编程学习交流圈子,QQ群757874045点击进入】微信公众号:C语言编程学习基地

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

编程学习软件

编程学习视频

原文链接:http://www.cnblogs.com/112Q/p/13706685.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号