編譯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)"