微软推出的高性能内存库:mimalloc
Debug模式由于加载了很多调试信息。性能弱于系统new/delete malloc/free
Release模式性能完全优于系统new/delete malloc/free
引入mimalloc
#include "mimalloc-override.h"
#include "mimalloc-new-delete.h"
以上头文件重载了系统的new/delete malloc/free函数,项目将自动切换到mimalloc。
注意事项
-
new/delete全局替换
由于new/delete属于c++函数,允许重载(属于全局重载)。所以只要包含了mimalloc-new-delete.h即可替换当前项目的所有new/delete。vs链接的时候会优先链接mimalloc。 -
malloc/free局部替换
malloc/free属于C函数,不允许重载。所以替换malloc/free必须包含mimalloc-override.h -
new重载和mi_new的区别
new:属于运算符重载,编译器默认会插入指令调用Obj构造函数。
mi_new:属于函数调用,默认不会调用Obj构造函数。
VS 连接器=>命令行 输入:/verbose 编译可以查看具体的链接信息。


14

被折叠的 条评论
为什么被折叠?



