三七互娱 游戏开发-C++ 二面

1. 谈一谈C++11/14/17的新特性,你在项目中用过哪些?

  • C++11:智能指针(unique_ptr/shared_ptr):项目中替代裸指针管理游戏房间对象,避免内存泄漏;移动语义(std::move):优化游戏道具列表的拷贝,减少临时对象开销;lambda表达式:简化多线程回调(如玩家状态同步的异步任务);thread/mutex:实现游戏房间的多线程并发,保证玩家数据安全;nullptr:替代NULL,避免指针类型歧义。
  • C++14:泛型lambda:适配不同类型的玩家属性(如int/string)的同步逻辑;std::make_unique:安全创建unique_ptr,避免内存泄漏。
  • C++17:std::optional:处理玩家可选属性(如时装),避免空指针;结构化绑定:简化游戏配置表的读取(auto [id, name] = config)。核心价值:这些特性提升了代码效率,降低了游戏开发中的内存、并发问题风险。

2. 游戏开发中,如何优化C++程序的性能?

  1. 内存优化:内存池:预分配玩家对象、游戏道具的内存,减少new/delete的堆碎片;避免频繁拷贝:用引用/移动语义替代值传递,如玩家状态同步用const &;对齐内存:按CPU缓存行(64字节)对齐游戏对象,提升缓存命中率。
  2. CPU优化:减少虚函数调用:游戏高频调用的函数(如玩家移动)避免虚函数,降低虚表查询开销;循环优化:减少循环内的分支判断(如玩家碰撞检测),利用CPU流水线;多线程并行:将游戏逻辑(AI计算、场景加载)拆分到不同线程,避免主线程阻塞。
  3. IO优化:异步IO:游戏资源(地图、音效)用异步读取,避免主线程卡顿;数据压缩:玩家状态、配置表序列化后压缩传输,减少网络IO。

3. 谈一谈内存对齐的原理,游戏开发中为什么要重视内存对齐?

  • 内存对齐原理:CPU访问内存时按“对齐单位”(如4/8/16字节)读取,若数据未对齐,需多次读取并拼接,增加开销;编译器会自动为结构体/类成员填充空白字节,保证对齐。
  • 游戏开发中的必要性:提升性能:游戏中高频访问的对象(如玩家坐标、怪物属性)对齐后,CPU缓存命中率提升,减少卡顿;硬件兼容:部分嵌入式/游戏主机(如PS、Switch)要求严格对齐,未对齐会导致程序崩溃;减少内存碎片:对齐后的内存块更易管理,适配游戏内存池的固定块分配逻辑。

4. 游戏中玩家状态同步会出现延迟 不一致,你怎么解决?

  1. 网络层面:增量同步:仅同步变化的属性(如血量、位置),而非全量数据,减少传输量;帧同步+状态同步结合:核心战斗逻辑用帧同步(保证一致性),非核心属性(如时装)用状态

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

C++ 常考面试题总结 文章被收录于专栏

本专栏系统梳理C++方向, 大中厂高频高频面试考点 , 内容皆来自真实面试经历,从基础语法、内存管理、STL与设计模式,到操作系统与项目实战,结合真实面试题深度解析,帮助开发者高效查漏补缺,提升技术理解与面试通过率,打造扎实的C++工程能力.

全部评论
沾点喜气,二面顺利!
点赞 回复 分享
发布于 02-27 21:23 四川

相关推荐

本人双九(一般的985)现在🐻厂实习字节hr两次电联同一个职位的实习,问我考不考虑,第二次说的很恳切🐻厂给的测开,字节给的后端本人还没确定,秋招走大厂还是走央国企,目前暂时偏向稳定,更倾向于在江浙一带工作犹豫的点:1.目前组内氛围好,mt也好,组长也好2.如果再面试,我需要重跑我的项目,再准备+八股+手撕,会很累3.如果准备不充分,怕脏面评02-04 22:16 已编辑 北京收到1人送花1朵33大家都在搜:央国企全部评论 (41条)推荐最新学也学不动玩也玩不爽02-08 21:53门头沟学院 C++过来人告诉你 字节hr 就是这德行面试前对每个候选人特别舔 面完找他问进度就查无此人了山东227我不爱上班啊 :哈哈哈哈哈,这几天在xhs上略有了解海捞吧hhh小何和 :前期很热情,突然很冷淡😁超级无敌霹雳小猪猪02-05 09:53深圳职业技术学院 护士双九这么不自信的吗?广东27我不爱上班啊 :我这个实习的准备时间短,感觉在接其他面试被拷打了,项目和技术栈不熟,就没什么自信ZYLOM05 :稳定也挺好呀走呀走02-06 12:10门头沟学院 C++在面字节前面几家其它的后端面试会好一些江苏12我不爱上班啊 :哈哈哈哈我同门面字节,一面二面就没有低于1h的,哈人小凡h02-15 17:34四川大学 天线工程师🐻厂留用率?甘肃01kaori__02-14 13:32香港大学 Java哥们儿你不知道字节是一线大厂里面发面最多的吗,发面试又不是oc,hr再恳切有作用吗北京11楼主 匿名牛油 :现在知道了哈哈哈越今朝002-11 13:10四川大学 后端工程师为啥要犹豫,字节不还是正常面试吗,又不是已经拿到oc了北京11楼主 匿名牛油 :不想脏面评,不过现在也无所谓了,也不准备去大厂在改简历的大卫很认真今天 19:17浙江工业大学 深度学习现在这么卷,0实习能进的,都是有真本事的浙江00我就不理解了02-27 12:03京东 后端开发工程师测开转后端也不错吧,不过HR虽然舔,面试要求不会放松的北京00ScarletMoon_02-11 20:42南京理工大学 Java🐻厂留用率?江苏10楼主 匿名牛油 :听说转正会比较容易?不是特别了解_hengheng02-10 14:28阿里巴巴 ai infra还以为是到hr面了让你去呢,就约个面试能有多诚恳北京00嵌入式的小白02-08 21:50西安理工大学 嵌入式软件开发那就赶紧准备啊,看看别人面经,刷八股啥的陕西10我不爱上班啊 :暂时没有特别想换的准备,大概率all in央国企了哈基米奶龙02-08 15:35北京邮电大学 后端工程师字节hr都很热情吧,最近27届暑期开了,也收到几个电话 但是考虑不想脏面评就不面了北京10我不爱上班啊 :已经略有了解了,感觉很海捞不进大厂不改名😡x02-06 15:34百度 后端开发(实习)建议不要脏面评,年后投随便约面北京30坚持无悔意无休 :666又遇到兄弟了我不爱上班啊 :hr是说约年后不进大厂不改名😡x 回复 坚持无悔意无休 :Jasonnnnnnnn02-06 07:35Columbia University Java试一下咯美国10我不爱上班啊 :暂时不考虑了hhh站队站对牛02-05 22:49门头沟学院 机械设计/制造双***历都到顶了江苏10我不爱上班啊 :不是很厉害的9,曾经被嘲过牛客548622592号02-05 20:55Java要不等年后吧,不差这一次吧??字节那不是投了就能面吗?一定要面这个岗?北京10我不爱上班啊 :打电话也是准备说年后了,年前肯定不行哈哈哈我投的少,我也不知道是不是投了就能面主要怕我面得不好,唉StephenZ_02-05 20:31广东工业大学 Java双9干什么测开广东10我不爱上班啊 :哈哈哈哈哈,准备实习的时间很短很仓促,收到的后端面试不多,想着先有个实习就走了测开我们都在等雨停02-05 19:54门头沟学院 后端工程师熊是什么厂广西10我不爱上班啊 :百度秋招失业人02-05 10:48National University of Singapore 测试开发大胆去面吧 我就是不自信加上没后端实习 秋招大厂只投了测开 现在有点后悔福建30我不爱上班啊 :,不自信加上项目不熟,我感觉会被拷打所以害怕秋招失业人 回复 我不爱上班啊 :没事 不会损失啥 等你真的拿了测开就会像我一样从激动欣喜到焦虑前景我不爱上班啊 回复 秋招失业人 :还有一个就是怕字节脏面评,所以如果接面试肯定也会努力准备一下的如果秋招不满意的话,还能搏一搏春招吧,我身边就有在春招找到不错的岗位的我不爱上班啊02-04 22:20未填写教育信息 测试开发还有就是,emmmm,周围也有面字节的,普遍表示有难度,我觉得我菜
点赞 评论 收藏
分享
评论
1
11
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务