相关疑难解决方法(0)

用于C/C++的多线程内存分配器

我目前有大量的多线程服务器应用程序,我正在四处寻找一个好的多线程内存分配器.

到目前为止,我被撕裂了:

  • 太阳的呃
  • 谷歌的tcmalloc
  • 英特尔的线程构建块分配器
  • Emery Berger的囤积

从我发现的囤积可能是最快的,但我在今天之前没有听说过,所以我怀疑它是否真的像它看起来那么好.任何人都有尝试这些分配器的个人经验?

c c++ memory malloc allocation

35
推荐指数
3
解决办法
1万
查看次数

如何强制 malloc 在 64 位系统上返回 32 位指针?

我的程序中有一个错误,因此它在 32 位上工作正常,但在 64 位上只能随机工作,因为程序中某处有 32 位指针截断。

\n\n

原因是,如果 malloc 返回一个内存地址,并且在指针分配时在高 32 位中设置了一个位,则指针将变为 NULL。

\n\n

所以我找到了触发段错误的指针。但它\xe2\x80\x99s不是我参与的程序(我\xe2\x80\x99m是用户而不是开发人员)并且\xe2\x80\x99s根本没有编译器警告。

\n\n

因此,如何确保 malloc 返回一个可以在 32 位模式下使用的值,而不是花费我没有\xc2\xb4t 的时间?

\n

linux malloc 32-bit glibc x86-64

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

标签 统计

malloc ×2

32-bit ×1

allocation ×1

c ×1

c++ ×1

glibc ×1

linux ×1

memory ×1

x86-64 ×1