搜尋

首頁  >  問答  >  主體

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

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

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

伊谢尔伦伊谢尔伦2802 天前2439

全部回覆(1)我來回復

  • 黄舟

    黄舟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函數是哪裡來的,是怎麼連接進目前這個程式的?

    回覆
    0
  • 取消回覆