c++ - 什么被认为是 C++ 中的小对象?

标签 c++ memory-management

我在“现代 C++ 设计”中读到了有关小对象分配的内容。 Andrei Alexandrescu 认为,通用运算符(new 和 delete)在分配小对象时表现不佳。

在我的程序中,有很多对象在自由存储中创建和销毁。这些对象测量超过 8000 个字节。

什么尺寸被认为是小的?关于 C++ 中的内存分配,8000 字节是大还是小?

最佳答案

“小”的定义各不相同,但一般来说,如果对象的大小小于堆分配引起的大小开销(或至少接近该大小),则该对象可以被视为“小”。

因此,在大多数情况下,一个 16 字节的对象可能被认为是“小”对象。在某些特定情况下,32 字节的对象可能被认为很小。一个 8,000 字节的对象绝对不“小”。

通常,如果您要经历使用小对象分配器的麻烦,您会希望提高某些代码块的性能。如果使用小型对象分配器对性能没有帮助,您可能不应该使用。

关于c++ - 什么被认为是 C++ 中的小对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3435738/

相关文章:

C++:记录器设计,行/函数信息作为函数参数

c++ - 内存泄漏在哪里?二维数组类

memory-management - 在 Fortran 中使用析构函数释放内存

memory-management - 有没有一种简单的方法来准备 Fortran 代码以进行并行调用

c - 内存分配

c++ - 使用 WinAPI 在运行时将字符串添加到资源

C++ : meaning of keyword "typename" in this function

c++ - g++ 与旧代码的旧目标文件链接良好

c++ - 编译 caffe 的自定义层时 LevelDB 出现奇怪的错误

C++ 正确的内存释放没有关于分配的信息