Heim  >  Fragen und Antworten  >  Hauptteil

c++ - jemalloc 怎么自动替换掉项目中已使用的malloc和new?

请教一下
在windows下使用jemalloc,看了下测试例子,是调用je_mallocje_free操作的
但是项目中已经有了很多malloc和new

必须自己去处理new以及stl::allocator替换成je_malloc么?
还是有类似tcmalloc一样比较方便的使用方法?

伊谢尔伦伊谢尔伦2764 Tage vor2398

Antworte allen(1)Ich werde antworten

  • 黄舟

    黄舟2017-04-17 15:05:28

    不知道你具体怎么在windows下使用,不熟悉vs,但原理应该适用。
    如果你还是gcc/mingw,可以直接优先链接jemalloc库就可以全局替换为使用jemalloc的实现了。
    下面是一个例子:
    cc app.c -o app -L${JEMALLOC_PATH}/lib -Wl,-rpath,${JEMALLOC_PATH}/lib -ljemalloc
    来自文档:
    https://github.com/jemalloc/j...
    在Linux你也可以直接编译好的jemalloc的库路径加到LD_LIBRARY_PATH

    这是常见的连接时依赖注入的用法。
    你可以试着回答原来的malloc函数是哪里来的,是怎么连接进当前这个程序的?

    Antwort
    0
  • StornierenAntwort