4

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

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

  1. 通过使用-tcmalloc选项编译 glib。
  2. 通过使用g_mem_set_vtable ()glib的内存分配函数

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

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

4

1 回答 1

4

您可以使用LD_PRELOADtcmalloc 文档中建议的方法

或者,在使用任何 glib 函数之前,使用dlopen(). dlsym()、和例程,并用它们初始化malloc()a 。(假设 tcmalloc也更好)。请务必初始化您不使用的成员(C99 命名成员初始化非常适合此)。最后打电话realloc()free()struct GMemVTablecalloc()0g_mem_set_vtable()

于 2010-11-17T11:54:27.143 回答