c++ - "pragma pack 1"是否有助于避免堆碎片?

标签 c++ c memory-management memory-fragmentation

在我的程序中,我看到一些驻留大小增加了。我想这是因为堆碎片。 所以我打算使用 #pragma pack 1。 它会减少堆碎片吗?

会不会有一些其他的开销?

我去还是不去?

最佳答案

有一个经过充分证明的技术叫做 Memory pools .它专为减少内存碎片和帮助解决内存泄漏而设计。并且应该在内存碎片成为程序功能瓶颈的情况下使用。

'pragma pack 1' 无助于避免堆碎片。

“pragma pack 1”用于从结构中删除填充字节,以帮助在程序之间传输二进制结构。

关于c++ - "pragma pack 1"是否有助于避免堆碎片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23487999/

相关文章:

iphone - UIVIew Controller 中何时调用 ViewDidUnload 和 Dealloc 方法?

c++ - 将时间字符串转换为持续时间

c++ - 在 C++ 中使用为 C 制作的 Linux API header

c++ - 如何初始化可变长度的无符号字符数组?

c - unsigned long long int pow

c# - Exception 的 MethodHandle 什么时候改变?

c++ - glibc 上的 valgrind 输出在 C++ 中检测到错误

c++ - 中断正在运行的程序并保存数据

c++ - 什么时候删除 karatsuba 算法中分配的内存?

c - C中如何通过指针调用函数