我在“现代 C++ 设计”中读到了有关小对象分配的内容。 Andrei Alexandrescu 认为,通用运算符(new 和 delete)在分配小对象时表现不佳。
在我的程序中,有很多对象在自由存储中创建和销毁。这些对象测量超过 8000 个字节。
什么尺寸被认为是小的?关于 C++ 中的内存分配,8000 字节是大还是小?
最佳答案
“小”的定义各不相同,但一般来说,如果对象的大小小于堆分配引起的大小开销(或至少接近该大小),则该对象可以被视为“小”。
因此,在大多数情况下,一个 16 字节的对象可能被认为是“小”对象。在某些特定情况下,32 字节的对象可能被认为很小。一个 8,000 字节的对象绝对不“小”。
通常,如果您要经历使用小对象分配器的麻烦,您会希望提高某些代码块的性能。如果使用小型对象分配器对性能没有帮助,您可能不应该使用。
关于c++ - 什么被认为是 C++ 中的小对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3435738/