游戏开发中性能优化

本文介绍了游戏开发中性能优化的基础工具,包括内部性能统计系统、性能分析工具、机器人测试验证系统和性能监控系统,强调了原因定位方法,如热点粒度、代码分析和经验数据。同时,分享了代码优化策略,包括内存操作、时间操作、cache-miss优化、分支预测、文件操作和代码精简等具体案例。
摘要由CSDN通过智能技术生成

以下优化手段说明来自:

2018腾讯移动游戏技术评审标准与实践案例

6.1 背景介绍 MMORPG游戏通常玩法和系统的数量都非常多,因此代码量也是非常大的。当 出现性能问题需要优化时,如何从百万行级别代码的工程里,发现那些性能浪费 最严重的代码,进行优化后,如何检验性能优化的效果,需要从工具、原因定位 方法、优化策略几个方面入手来解决问题。 
 
6.2 性能优化基础工具

要在茫茫码海中发现那些性能热点,处理掉,再检验成效,需要一些基础设施的 支撑。御龙主要利用程序内部的性能统计系统以及一些常用的性能分析工具来发 现代码的性能热点,使用灵活的机器人模型代码优化迭代测试,并利用监控系统 发现运营环境中的不易觉察的性能毛刺。 
 
6.2.1 程序内部性能统计系统

游戏服务器代码的执行一般有玩家行为驱动和服务器定时驱动两种方式: 由玩家行为驱动时,可以在消息包处理的统一入口处统计消息包的数量、大小、 处理时间等信息。 由定时器驱动时,可以把定时器做成动态注册集中管理的方式,这样也可以在定 时器执行入口处统计各个定时器的执行次数和执行时间。 所有消息处理时间和定时器处理时间的总和基本上就是整个程序的总执行时间。
 
构建程序内部性能统计系统的好处有几个: 有了各个消息包和定时器的执行时间,可以在业务层上进行调整尽可能降低cpu 消耗,例如降低移动频率和服务器定时驱动频率等。 在使用性能分析工具对函数消耗进行排序时,会发现大量消耗时间很少的函数, 形成长尾,不易逐一优化,程序内部的统计信息有利于在更高执行层次上进行整 体优化。 另外,消息包和定时器的执行数量统计有利于建立机器人模型进行测试、对具体 代码的总执行时间进行预估等,程序的总执行时间的统计结果也有利于程序根据 cpu情况进行自动调整服务。 
 
6.2.2 性能分析工具

良好的性能分析工具可以让性能优化事半功倍。御龙后台在性能优化中尝试过很 多性能分析工具,包括gprof、oprofile、valgrind、perf、vtune等。使用哪种 性能分析工具受到获取简便性、学习成本大小、是否满足性能分析需求等影响, 各种分析工具之间有不少差异,需要根据实际情况来选择合适的分析工具。 选择性能分析工具时有几个因素需要特别考虑: 工具本身消耗的cpu大小。例如valgrind本身cpu消耗非常大,不适合使用于 服务器负载较大时的性能分析,只适合于性能是线性增长的情况并作低负

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值