gpt4 book ai didi

c - 将 tcmalloc 与 glib 结合使用

转载 作者:太空狗 更新时间:2023-10-29 15:33:51 33 4
gpt4 key购买 nike

我想测试使用 Google 的 tcmalloc 可以获得的性能改进。我的程序是使用 glib 提供的大量实用程序构建的(散列、列表、数组……)。所以我想要的基本上是让 glib 使用 tcmalloc 而不是 glibc 的 malloc。

我可以用两种方法解决这个问题:

  1. 通过使用 -tcmalloc 选项编译 glib。
  2. 通过使用来自 glib's memory allocation functionsg_mem_set_vtable () .

我实际上更喜欢第二种,但我还没有找到任何实现它的例子。

有什么提示吗?这样做有什么想法吗?

最佳答案

您可以使用 LD_PRELOAD method suggested in the tcmalloc documentation .

或者,在使用任何 glib 函数之前,使用 dlopen(). dlsym() 加载 tcmalloc 库malloc()realloc()free() 例程,并初始化 struct GMemVTable跟他们。 (假设 tcmalloc calloc() 也更优越)。请务必将不使用的成员初始化为 0(C99 命名成员初始化对此非常有用)。最后拨通g_mem_set_vtable()

关于c - 将 tcmalloc 与 glib 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4203940/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com