相关疑难解决方法(0)

什么是内存碎片?

我听说在C++动态内存分配的上下文中使用了几次"内存碎片"这个术语.我发现了一些关于如何处理内存碎片的问题,但找不到直接处理它本身的问题.所以:

  • 什么是内存碎片?
  • 如何判断内存碎片是否对我的应用程序有问题?什么样的计划最容易受到影响?
  • 处理内存碎片的常用方法有哪些?

也:

  • 我听说使用动态分配可以增加内存碎片.这是真的?在C++的上下文中,我理解所有标准容器(std :: string,std :: vector等)都使用动态内存分配.如果在整个程序中使用它们(特别是std :: string),内存碎片更可能是一个问题吗?
  • 如何在STL繁重的应用程序中处理内存碎片?

c++ memory heap fragmentation

190
推荐指数
7
解决办法
7万
查看次数

STL替代方案

我真的很讨厌使用STL容器,因为它们使我的代码的调试版本运行得非常慢.其他人使用什么代替具有合理性能的调试版本的STL?

我是一名游戏程序员,这对我所参与的许多项目都是一个问题.当你使用STL容器时,很难获得60 fps.

我的大多数工作都使用MSVC.

c++ performance stl debug-build

25
推荐指数
5
解决办法
1万
查看次数

EASTL与STL,如何在std :: vector <uint64_t> :: operator []中出现这样的性能差异

根据http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2271.html,EASTL的 vector<uint64>::operator[]速度比"常用的STL商业版本"快2%到70%.

除非STL的商业版本使用范围检查,这会使比较不公平,对于这样一个简单的操作,它怎么可能是这样的速度差异?

更新:

似乎答案是,EA工程师只是通过与使用范围检查的版本进行比较而作弊...

c++ optimization stl eastl

13
推荐指数
1
解决办法
8321
查看次数