在c++动态内存分配的上下文中,我听说过几次“内存碎片”这个术语。我发现了一些关于如何处理内存碎片的问题,但找不到一个直接处理它本身的问题。所以:
- 什么是内存碎片?
- 如何判断内存碎片是否是我的应用程序的一个问题?什么样的程序最可能受到影响?
- 处理内存碎片的常用方法是什么?
另外:
- 我听说经常使用动态分配会增加内存碎片。这是真的吗?在c++环境中,我知道所有的标准容器(std::string, std::vector等)都使用动态内存分配。如果在整个程序中使用这些(特别是std::string),内存碎片更可能是一个问题吗?
- 在stl较多的应用程序中如何处理内存碎片?