问题标签 [tcmalloc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1161 浏览

c++ - 当我使用共享库编译和运行此程序时,为什么 tcmalloc 会失败?

代码类似于此处的代码: Why tcmalloc don't print function name, which provides via dlopen

生成文件:

  • 全部:
  • g++ -fPIC -g -c shared.cpp -ltcmalloc
  • g++ -shared -o shared_libs/libshared.so -g shared.o -ltcmalloc
  • g++ -L shared_libs/ -g main.cpp -ldl -ltcmalloc

当我执行我的程序时:

带有核心文件的 gdb 说:

0 投票
1 回答
363 浏览

c++ - 如何获取所有类的 tcmalloc 静态

我正在为我的应用程序使用 tcmalloc lib,我想获取所有类信息,例如该类的对象数量、总大小等。

有一个函数 DumpStats 可以为我们提供所有信息(类信息、页堆信息、总内存分配摘要等)。此 API 将以字符串形式提供信息,我不想解析它来获取我想要的信息。

是否有类似的 API 来获取所有类(桶)信息。如果问题不清楚,请告诉我。

0 投票
1 回答
572 浏览

c++ - tcmalloc 巨大的性能差异

我们的多线程服务器有数百个连接线程,负责处理 IO 并回复传入的请求。

还有另一个异步线程运行相对繁重的任务,不时分配很多(比如每隔几秒)。

一旦我将该线程转换为一个小线程池(即,这些任务现在每次都从不同的线程运行),我们的服务器通常具有相同的 CPU 使用率,但它可能会突然达到这样的状态,即所有操作的分配需要更多时间并且整体 CPU服务器的使用率几乎翻了一番,从 2 核增加到 3.7 核。

到目前为止,我的主要理论是我以某种方式更改了 tcmalloc 库的访问模式,这会导致随机 CPU 提升。为了证实这个理论,我应该在 tcmalloc stats 中查看什么?现在从不同线程(但不是同时)运行的相同代码是否会导致 tcmalloc 从中央缓存中分配比从线程缓存中分配更多?

0 投票
2 回答
1028 浏览

gcc - malloc 和 tc_malloc 有什么区别?

对于代码 main.c:

第一次编译: gcc main.c -o a.out

第二次编译: gcc main.c -ltcmalloc -o a.out

第一次使用 glibc 标准库,第二次使用 tcmalloc

我可以这样写 main.c :

第三次编译:gcc main.c -ltcmalloc -o a.out

第三是肯定使用 tcmalloc

第二次和第三次编译是一样的吗?

我知道 tcmalloc 支持更多的函数,比如tc_malloc_size/ tc_valloc,我想使用 tc_* 函数是编写 main.c 的更好选择,所以我有更多的函数?

我找不到像 tc_valloc / tc_new / tc_newarray / tc_valloc / tc_pvalloc 这样的函数的任何手册页

0 投票
1 回答
229 浏览

windows - 与 TCMalloc 链接,但 CRT malloc 总是调用

我想在 Windows 上尝试一下 TCMalloc。我已经构建了 VisualStudio 解决方案,它是我下载的 gperftools 包的一部分。但是,当我运行下载时附带的任何测试应用程序时,例如 tcmalloc_minimal_unittest.exe,所有内存分配调用都转到标准 malloc。有没有人已经看过这个并且知道我应该怎么做?非常感谢。

0 投票
2 回答
730 浏览

c++ - 架构 x86_64 的未定义符号:_memalign:TCMalloc

我做了一些更改,我正在尝试在 Mac OS X Yosemite 10.10.3 上编译google-perf(TCMalloc),我按照步骤 return here安装 gperf。但是,我得到以下链接错误。

我安装了 gcc 但没有帮助。

谁能帮我解决这个问题?

0 投票
3 回答
2731 浏览

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

我使用 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?

0 投票
0 回答
483 浏览

c++ - tcmalloc:分配失败——什么是 npages?

我最近遇到了错误消息

查看源代码,我看到 tcmalloc 正在报告“npages”。

我应该如何解释这个数字?它为我提供了哪些信息来帮助我调试应用程序?有没有办法判断“页面”有多大,或者 npages 是否是一个不合理的值?

0 投票
1 回答
546 浏览

c++ - 取消定义对 tcmalloc 公共 API 的引用

我已经克隆了 google-perf git 树。

上述所有步骤均成功。我可以在 /usr/include/gperftools/tcmalloc.h 等中看到头文件

我的程序

汇编

如果我注释掉 GetStats 行,那么编译工作正常。所以我假设它与 tcmalloc 链接。但是,当我尝试访问 API 时,它给了我一个错误。

可能是什么问题呢?也许有什么想法?

0 投票
1 回答
4082 浏览

tcmalloc - tcmalloc ReleaseToCentralCache 上的段错误

当流量非常高时,我们经常遇到段错误转储。不知道现在这里有什么问题?

有谁有经验可以和我们分享一下吗?

谢谢,