1

我正在尝试分析应用程序以使用不同的分配策略比较其性能。

使用 tcmalloc 时我可以毫无问题地对其进行分析,但是如何使用 libc 的分配函数对其进行分析?实际上,启用 gperftool 的堆分析器需要使用-ltcmalloc标志¹,但这会导致 tcmalloc 被用作分配策略。

4

1 回答 1

0

如何使用 libc 的分配函数对其进行分析?

注意:这个要求有点奇怪:当你从 tcmalloc 切换到 GLIBC malloc 时,你的应用程序不会突然开始使用更多或更少的堆内存,或者改变它的分配模式或站点。

https://gperftools.github.io/gperftools/heapprofile.html

堆分析需要使用 libtcmalloc。在堆分析器的未来版本中可能会删除此要求,并将堆分析器分离到自己的库中。

这样你就可以

  • 等待谷歌开发者取消这个要求(这可能是几天或几年的等待 - 我不知道。实际上,看起来上面的 github.io 页面自 2012 年以来就没有更新过,所以我不会在这里屏住呼吸),或者
  • 自己贡献分离所需的代码,或
  • 找到一种使用 GLIBC 的等效方法(并可能将该代码贡献给 GLIBC)。

我不知道今天有任何现有的 GLIBC 等效项。

于 2018-05-28T00:51:21.023 回答