ubuntu - tcmalloc 不能在 ubuntu 上使用 -ltcmalloc_minimal

标签 ubuntu g++ tcmalloc gperftools

我使用 apt-get install libtcmalloc-minimal4 在 Ubuntu 14.0 上安装了 tcmalloc

我做了以下步骤:

ln -s libtcmalloc_minimal.so.4.1.2 libtcmalloc_minimal.so
将我的可执行文件与 -ltcmalloc_minimal 链接

运行后
代码,我看不到任何性能差异。

我尝试使用 HEAPCHECK 运行以检查是否正在使用 tcmalloc,但没有发现任何与 HEAPCHECK 相关的警告。

我的程序包含 malloc 调用和 openMP。还有什么我需要做的吗?
如何检查以确保我的程序正在使用 tcmalloc?

最佳答案

I did following steps: ln -s libtcmalloc_minimal.so.4.1.2 libtcmalloc_minimal.so linked my executable with -ltcmalloc_minimal



一般来说,永远不需要对这样的库进行符号链接(symbolic link)。您必须这样做的事实告诉我您没有安装正确的(开发)包。

ldd gives "not a dynamic executable".



在这种情况下,保证您的可执行文件没有与 libtcmalloc_minimal.so 链接。 .

I have linked the library using -L <path to .so>



这不会将您的可执行文件链接到任何特定的库,它只是告诉您的链接器查看 <path to .so>库的目录。您实际上需要让链接器查找 libtcmalloc_minimal , 与 -ltcmalloc_minimal旗帜。

关于ubuntu - tcmalloc 不能在 ubuntu 上使用 -ltcmalloc_minimal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33070872/

相关文章:

python - 命令提示符导致标签。 python 2.7

仅限 Eclipse 外部的 C++ 段错误

c++ - 使用静态链接替换 ​​Windows tcmalloc

linux - 在 Bash 脚本中检查执行命令的结果

logging - 输出重定向 - 如何使用 tail -f 获取实时流

c++ - 将 osx 上的默认编译器从 llvm-g++ 更改为 g++

c++ - fopen ("filename", "wb") 返回 null

C++静态变量多实例

Tensorflow first epoch 极慢(可能与 pool_allocator 有关)

c - jemalloc 和 tcmalloc 如何跟踪线程?