我想要高性能的运行时内存指标,所以我编写了一个基于重载new
&的内存跟踪器delete
。它基本上可以让您在堆中进行分配并分析有关它们的所有内容 - 碎片、大小、时间、数量、调用堆栈等。但是,它有两个致命缺陷:它无法跟踪在其他 DLL 中分配的内存以及何时拥有对象被传递给 DLL,反之亦然,崩溃随之而来。还有一些较小的缺陷:如果用户使用malloc
而不是new
未跟踪;或者如果用户定义了一个类new
/ delete
。
我怎样才能消除这些缺陷?我认为我必须通过重载new
/从根本上错误地解决这个问题delete
,有没有更好的方法?