实习笔试计算机知识大纲

发表:3周前 更新:3周前 | {{user.city}}

AI生成,仅供参考。

一、计算机网络

  1. 网络分层模型

    • OSI七层模型 vs TCP/IP四层模型:各层功能(如传输层负责端到端通信,网络层负责路由)。

    • 游戏数据包在协议栈中的封装与解封装流程。

  2. 传输层协议

    • TCP:三次握手/四次挥手、可靠性机制(超时重传、滑动窗口)、流量控制、拥塞控制(慢启动、拥塞避免)。

    • UDP:无连接、低延迟、适用场景(实时游戏、音视频流)。

    • 对比:TCP的可靠性与UDP的高效性,游戏开发中如何选择(如MOBA用UDP+自定义可靠性逻辑)。

  3. HTTP/HTTPS与WebSocket

    • HTTP请求方法(GET/POST)、状态码(200、404、502)。

    • HTTPS加密流程(SSL/TLS握手)。

    • WebSocket:全双工通信,适用于游戏实时交互(如聊天系统、状态同步)。

  4. 网络延迟与优化

    • 延迟来源:带宽、路由跳数、物理距离。

    • 优化手段:CDN加速、数据压缩、预测插值(Dead Reckoning)、客户端渲染补偿。

  5. 常见攻击与防护

    • DDoS攻击、中间人攻击(MITM)、数据包篡改。

    • 防护措施:加密(AES、RSA)、心跳包检测、服务器端校验。

  6. Socket编程

    • 基础API(send()/recv())、非阻塞IO、多路复用(select/epoll)。


二、计算机组成原理

  1. 计算机体系结构

    • 冯·诺依曼架构:五大部件(运算器、控制器、存储器、输入/输出)。

    • CPU工作流程:取指、译码、执行、访存、写回。

  2. 存储系统

    • 存储器层次:寄存器 > 缓存(Cache) > 内存 > 磁盘,访问速度与成本权衡。

    • Cache映射方式:直接映射、组相联,缓存命中率对游戏性能的影响。

    • 虚拟内存:分页机制、缺页中断。

  3. 数据表示与运算

    • 浮点数存储(IEEE 754)、精度问题(游戏物理引擎中需注意)。

    • 位运算优化(如掩码处理状态标志)。

  4. 性能优化相关

    • CPU流水线:指令级并行、流水线冲突(数据冒险、控制冒险)。

    • 多核与多线程:线程同步(锁、信号量)、避免竞态条件(游戏逻辑线程 vs 渲染线程)。

  5. 输入/输出系统

    • DMA(直接内存访问):减少CPU干预,提升数据传输效率(如加载游戏资源)。

    • 中断处理流程:外设触发→保存现场→执行ISR→恢复现场。


三、游戏开发特殊考点

  1. 网络同步问题

    • 帧同步 vs 状态同步,延迟补偿技术(如《守望先锋》的“时光倒流”机制)。

    • 权威服务器模型与客户端预测。

  2. 实时性要求

    • 如何减少网络抖动(Jitter Buffer)、时钟同步(NTP协议)。

  3. 资源加载优化

    • 内存池技术、预加载策略、LOD(Level of Detail)。


四、典型笔试题目示例

TCP如何保证可靠性?游戏为何有时选择UDP?

答案:

  • TCP的可靠性机制

    • 确认应答(ACK):接收方收到数据后返回确认信号。

    • 超时重传:发送方未收到ACK时重发数据包。

    • 数据排序:通过序列号(Sequence Number)保证数据按序到达。

    • 流量控制:滑动窗口机制动态调整发送速率,避免接收方缓冲区溢出。

    • 拥塞控制:慢启动、拥塞避免算法防止网络过载。

  • 游戏选择UDP的原因

    • 低延迟:TCP的重传和排序机制可能增加延迟(如FPS游戏中射击指令需实时响应)。

    • 灵活性:UDP允许自定义可靠性逻辑(如只重传关键数据包,丢弃过时位置信息)。

    • 无连接开销:无需三次握手,适合高频小数据包(如MOBA游戏的技能同步)。

 

解释游戏中“延迟”和“卡顿”的可能原因及优化方案。

答案:

  • 延迟(高Ping)

    • 原因:网络往返时间(RTT)高、路由跳数多、物理距离远(如跨国服务器)。

    • 优化

      • 使用CDN或边缘服务器减少物理距离。

      • 数据压缩减少传输量(如Protobuf替代JSON)。

      • 预测算法(Dead Reckoning):客户端预测玩家移动,服务器后续校正。

  • 卡顿(帧率波动)

    • 原因

      • CPU/GPU瓶颈:复杂场景渲染或物理计算超负荷。

      • 内存瓶颈:频繁GC(垃圾回收)或资源加载阻塞主线程。

      • 网络抖动:突发丢包导致同步等待。

    • 优化

      • 多线程渲染:分离逻辑线程与渲染线程。

      • 对象池技术:避免运行时动态内存分配。

      • 插值同步:网络波动时平滑过渡角色位置。

 

Cache失效对游戏性能的影响及避免方法。

答案:

  • Cache失效的影响

    • 缓存命中率下降导致CPU频繁访问内存(内存延迟是Cache的10~100倍),引发帧率下降或卡顿。

    • 常见于数据局部性差的代码(如随机访问大数组)。

  • 优化方法

    • 数据布局优化

      • 使用紧凑数据结构(如Struct of Arrays代替Array of Structs)。

      • 热数据分离:高频访问数据(如玩家位置)单独存储。

    • 算法优化

      • 避免随机访问(如用空间换时间的哈希表替代链表)。

      • 循环分块(Loop Tiling):提升矩阵运算的Cache利用率。

    • 预取指令:手动预加载可能访问的数据(如__builtin_prefetch)。

评论

无权限

请登录后评论

桂帖