正文
vs2015使用tcmalloc(windows)
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
编译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)"