跳转至

容器

游戏引擎对性能的要求很高, 因此除了 STL 还有一些注重高性能的容器库是更好的选择.

常见的容器库:

  • EASTL: Electronic Arts 实现的 STL, 详情请参考文档.
  • STLport: 符合 ISO C++ 标准, 为兼容多个编译器和目标平台而设计, 有比 STL 更高的效率和更丰富的功能.
  • Boost: 相比 STL 功能更加丰富, 但体积十分庞大且不保证支持向后兼容.
  • STL.

STL 有以下几个的缺点:

  • 会进行许多动态内存分配.
  • 不同版本的实现可能有较大差别.

C++ 默认内存分配方式:

  • 内存分配/回收慢, 难以快速响应.
  • 可能有锁, 难以高并发.
  • 内存对齐无法控制, 访问效率降低.
  • 分配位置无法控制, 无法有效利用 cache 和 SIMD.

评论