|
|
1
32
我认为这是一个非常有趣的项目,你可以从中学到很多东西。这里有一些关于记忆管理的阅读材料。它介绍了内存管理的一些基础知识,引入了一个简单的malloc实现,然后涉及到一些更高级的主题。 另外,由于您提到要制作一个对调试有用的内存管理器,您可能需要考虑由memcheck/valgrind(一个非常好的Linux内存调试器)的开发人员阅读本文。它详细描述了它们如何跟踪memchck中的所有元数据(无论是否定义了特定的字节、初始化等)。它有点详细,但对于如何创建一个可扩展和高效的动态内存检查器来说,它是一个很好的读物。 |
|
|
2
4
Dave Hanson C Interfaces and Implementations 首先介绍一个标准内存管理器,然后介绍一个具有一些调试功能的内存管理器。这将是学习和扩展的一个很好的起点。
当然,如果您真的想在运行的C或C++程序中诊断内存问题,应该使用
|
|
|
3
2
|
|
|
4
1
有一个用Delphi编写的伟大的开源内存管理器: fastMM4 . 看看它可能很有价值。它支持您想要实现的许多特性,因此可能是一个很好的展示。 |
|
|
6
0
你可以用Malc和Field-实现大部分的——事实上,很多C++内存管理器都被实现了,即使它们不是必须的。 您可以从维护所有分配和解除分配日志的简单实现开始,但将常规分配/解除分配转发给malloc和free。显然,简单的实现也不应该使用new/delete… 所以,首先你可以
|
|
|
7
0
我认为您可以从一个智能指针实现开始,它在后台使用基本的引用计数。这些是记忆管理的基础知识,会让你的脚湿透的。从那里,您可以使用您的实现来创建一个更高级的内存管理器。 |
|
|
8
0
“电子围栏”是一个可能有帮助的基本起点。本质上,它有malloc和free的定制实现,提供调试。 然而,AFAIK,它不集成到C++的NeX/DELT运算符中,尽管提供定制的全局新的/Delphi实现也不算太大,可以推迟到电篱笆例程。
|
|
9
-2
你的讲台是什么?想一想,在你去重新安装厨房水槽之前,Valgrind或Lint是否能帮助你? |