編譯lib庫
1、https://github.com/gperftools/gperftools 去tag中下載了2.4版本(最新的2.9.1版本 用了c++17的新特性摺疊表示式,vs2015不支援 有2個unittest測試用例工程編譯失敗)
2、在下載的目錄中 .sln 開啟vs工程
3、配置x64環境 (可以仿照下預設x86配置修改)
4、編譯生成 libtcmalloc_minimal.lib
2.4.91 版本有2個unittest工程編譯失敗,待解決
使用:
1、使用dll的方式 配置連結器 常規-》 附加庫目錄 和 輸入-》附加依賴項,並把對應的dll拷貝到exe目錄下
2、需要在工程專案屬性==》連結器 ==》輸入=》強制符號引用中加入 __tcmalloc
3、用malloc 和 free 對小記憶體簡單分配測試,速度變為了原來的3倍多
FAQ:
修改x64環境遇到的問題:
1、LINK : warning LNK4078: multiple “.text” sections found with different attributes (40000040)
工程專案屬性 ==》 c/c++ ==》程式碼生成 ==》 啟動最小重新生成 ==》改為是(/Gm)
2、error LNK2019: 無法解析的外部符號 __imp___CrtDbgReportW
工程專案屬性->C/C++->程式碼生成-> 執行庫, "多執行緒 (/MT) " 修改為 "多執行緒除錯(/MTd)"