问题标签 [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 回答
511 浏览

windows - TCMALLOC 内存泄漏

在 Windows 上,当我tcmalloc使用我的代码进行静态绑定时,我看到内存持续增长,但如果我不使用tcmalloc.

Linux 中不存在此问题。

我已经尝试过标志下面的标志:

当我使用这些变量时,我可以看到内存增长速度很慢,但是在多天的时间里,内存仍在不断增长。

我需要停止记忆增长。

0 投票
1 回答
281 浏览

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

现在我正在积极研究内存管理器的代码jemalloctcmalloc. 但我不明白这两位经理是如何跟踪线程的。

如果我理解正确,可以在内存分配期间检测到一个新线程,然后创建一个新的线程缓存。但是tcmalloc/如何jemalloc检测线程何时被销毁并且可以释放附加到它的线程缓存以供将来使用?

谷歌搜索结果甚至不能提供任何有用的信息。

0 投票
1 回答
222 浏览

c++ - 编写高效的回溯函数

我遇到了下面的步行回溯代码

寻找此代码背后的原因是我们正在使用第 3 方 malloc 挂钩,因此不想使用再次分配内存的回溯。以上不适用于 x86_64,我将 asm 语句修改为

我崩溃了

我错过了什么吗?关于如何通过代码重建相同的任何帮助?

0 投票
2 回答
957 浏览

c - glibc 中的暂存缓冲区是什么意思?

我发现如果我使用 tcmalloc 堆检查器以 draconian 模式检查下面的代码会导致堆泄漏,但 LSan 没有发现泄漏
(我假设 glibc 中的内部分配在 LSan 中被抑制)

我检查了一下,发现在 glibc 内部getaddrinfo()使用了暂存缓冲区
, 并怀疑这些暂存缓冲区会导致内存泄漏
(即使它无害)

但遗憾的是没有完整的解释
,只说“暂存缓冲区是具有堆栈默认分配的可变大小缓冲区”;;

但究竟是什么暂存缓冲区?

你可以参考glibc/include/scratch_buffer.h 这里

0 投票
0 回答
622 浏览

python - tcmalloc:使用 Google Colab 时出现大的allog 错误

我正在使用以下教程在 Google Colab 平台上构建神经语言模型:https ://machinelearningmastery.com/how-to-develop-a-word-level-neural-language-model-in-keras/ 。

我的数据集包含 2036456 个序列和 77069 个单词的词汇表,比教程中使用的要大得多,但我仍然可以在本地计算机上训练模型。但是,当我尝试使用 GPU 在 Google Colab 上使用完整数据集进行训练时,出现以下错误:

tcmalloc: large alloc 627790512128 bytes == 0x4789c000 @ 0x7fc0aaaf8001 0x7fc0a861c765 0x7fc0a8680bb0 ...

我已经设法弄清楚在代码中的哪个位置引发了这个错误,看起来罪魁祸首是以下行,其中 keras.to_categorical() 函数被调用以对输出单词进行一次性编码:

y = to_categorical(y, num_classes=vocab_size)

这告诉我,当对(相当大的)词汇表进行一次热编码时会出现问题,但我不明白为什么这在我的本地机器上不是问题。

在其他线程中,我读到这可能是内存问题,而且 Google GPU 确实似乎内存不足(我分配了大约 12 GB 的 RAM)。同样,这在我的本地计算机上不是问题,这是一台具有 16 GB RAM 的简单 MacBook Pro,我可以使用它加载数据并训练模型(尽管速度非常慢)。在训练期间,加载完整数据集后,该过程占用大约 13 GB 的 RAM,这与云 GPU 服务器上 10% 的相同数据集所需的内存量没有太大差异。

我究竟做错了什么?我的本地机器怎么可能处理数据而 Google Colab 却不能呢?或者,问题是否与数据完全无关?

谢谢。

0 投票
1 回答
273 浏览

c++ - 从源安装 tcmalloc 到没有 bazel 的链接?

我想从源代码安装 tcmalloc。

我在centos8上。我会从 yum 安装,但看不到任何google-perf可用gperf类型。(我确实这样做了。)yum check-update

tcmalloc github上的说明确实很简单。安装bazel(检查)。然后bazel test //tcmalloc/...<projectroot>/tcmalloc目录中运行。然后,它声称,“恭喜!你已经安装了 TCMalloc”!

好的 tcmalloc 团队,爱你们,但是......我认为我们的定义install是不同的。在这方面,我在其他地方或任何地方都看不到任何libtcmalloc可用的东西。/usr/lib//usr/lib64/

如何获得这个 bazel 野兽输出的漂亮、简单、旧的共享库?如上所述通过 bazel 链接到我的项目不是一种选择。

0 投票
1 回答
394 浏览

c++ - 在共享库中使用 tcmalloc

我有许多与 tcmalloc (.a) 链接的可执行文件。我通常在可执行级别执行此操作,以便可执行文件加载的任何共享库都受益于 tcmalloc。

但是,我有一个需要向用户提供 .so 库的场景。

在那个共享库中使用 tcmalloc 可以吗?

如果用户的可执行文件本身没有与 tcmalloc 链接会发生什么?

谢谢。

0 投票
1 回答
53 浏览

linux - gperftools/tcmalloc 2.8 - 内存不足

我们正在从 gperftools/tcmalloc 2.0 迁移到 2.8。但是我们的一些测试用例因“内存不足”错误而失败。我们使用 Cent OS 6.5。这发生在 posix_memalign() 调用请求 32536008 字节的 64 位对齐。在安装 gperftools 时,我没有在 configure 中使用任何特定选项。有没有人遇到过与 tcmalloc 2.8 类似的问题?谢谢,普拉莫德

0 投票
1 回答
932 浏览

python - tcmalloc: large alloc python in Google Colab

I was trying to apply a deep learning algorithm(CNN) in python but after separating training-testing data and transforming time series to image step my Colab Notebook crashed and restarted itself again.

It gives an error like "Your session crashed after using all RAM" and when I checked app.log I saw something about tcmalloc: large alloc. I didn't find anything to fix this crashed.

Do you have any idea how to prevent this warning and fixed this situation?

0 投票
1 回答
82 浏览

c++ - C++ 导入库而不是链接?

我是 C++ 新手。当我编写一个程序时,我希望它编译成一个独立的可执行文件,但是对于 C++,有很多关于动态和静态链接的讨论。据我所知,这意味着使用的单独库是单独编译和链接的,而不是一起编译的。

编译时间对我来说不是问题。我不明白为什么我想链接到一个库而不是直接用我的代码编译它。当然,这会带来更好的优化和内联。

一个完美的例子是 tcmalloc。我想使用 tcmalloc 内存分配器,而不是捆绑的分析器,也不是静态或动态链接到它,而是通过内联优化将它直接编译到我的程序中。

我怎么做?