问题标签 [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.
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 说:
c++ - 如何获取所有类的 tcmalloc 静态
我正在为我的应用程序使用 tcmalloc lib,我想获取所有类信息,例如该类的对象数量、总大小等。
有一个函数 DumpStats 可以为我们提供所有信息(类信息、页堆信息、总内存分配摘要等)。此 API 将以字符串形式提供信息,我不想解析它来获取我想要的信息。
是否有类似的 API 来获取所有类(桶)信息。如果问题不清楚,请告诉我。
c++ - tcmalloc 巨大的性能差异
我们的多线程服务器有数百个连接线程,负责处理 IO 并回复传入的请求。
还有另一个异步线程运行相对繁重的任务,不时分配很多(比如每隔几秒)。
一旦我将该线程转换为一个小线程池(即,这些任务现在每次都从不同的线程运行),我们的服务器通常具有相同的 CPU 使用率,但它可能会突然达到这样的状态,即所有操作的分配需要更多时间并且整体 CPU服务器的使用率几乎翻了一番,从 2 核增加到 3.7 核。
到目前为止,我的主要理论是我以某种方式更改了 tcmalloc 库的访问模式,这会导致随机 CPU 提升。为了证实这个理论,我应该在 tcmalloc stats 中查看什么?现在从不同线程(但不是同时)运行的相同代码是否会导致 tcmalloc 从中央缓存中分配比从线程缓存中分配更多?
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 这样的函数的任何手册页
windows - 与 TCMalloc 链接,但 CRT malloc 总是调用
我想在 Windows 上尝试一下 TCMalloc。我已经构建了 VisualStudio 解决方案,它是我下载的 gperftools 包的一部分。但是,当我运行下载时附带的任何测试应用程序时,例如 tcmalloc_minimal_unittest.exe,所有内存分配调用都转到标准 malloc。有没有人已经看过这个并且知道我应该怎么做?非常感谢。
c++ - 架构 x86_64 的未定义符号:_memalign:TCMalloc
我做了一些更改,我正在尝试在 Mac OS X Yosemite 10.10.3 上编译google-perf(TCMalloc),我按照步骤 return here安装 gperf。但是,我得到以下链接错误。
我安装了 gcc 但没有帮助。
谁能帮我解决这个问题?
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?
c++ - tcmalloc:分配失败——什么是 npages?
我最近遇到了错误消息
查看源代码,我看到 tcmalloc 正在报告“npages”。
我应该如何解释这个数字?它为我提供了哪些信息来帮助我调试应用程序?有没有办法判断“页面”有多大,或者 npages 是否是一个不合理的值?
c++ - 取消定义对 tcmalloc 公共 API 的引用
我已经克隆了 google-perf git 树。
上述所有步骤均成功。我可以在 /usr/include/gperftools/tcmalloc.h 等中看到头文件
我的程序
汇编
如果我注释掉 GetStats 行,那么编译工作正常。所以我假设它与 tcmalloc 链接。但是,当我尝试访问 API 时,它给了我一个错误。
可能是什么问题呢?也许有什么想法?
tcmalloc - tcmalloc ReleaseToCentralCache 上的段错误
当流量非常高时,我们经常遇到段错误转储。不知道现在这里有什么问题?
有谁有经验可以和我们分享一下吗?
谢谢,