制作自己的malloc功能?

我读了一些游戏重写自己的malloc来更有效率.我不明白这在虚拟内存世界中是如何可能的.如果我记得正确,malloc实际上会调用一个特定于操作系统的功能,它将虚拟地址映射到MMU的真实地址.那么那么有人可以自己创建内存分配器并分配真正的内存,而不需要调用实际的运行时的malloc?

谢谢

解决方法

一个分配器当然可以比一般目的更有效率.

如果您知道配置的属性,则可以将通用分配器从水中排除.

例如:多年以前,我们必须为嵌入式系统设计和编写通信子系统(HDLC,X.25和专有层).我们知道最大分配的事实总是小于128字节(或类似的),这意味着我们根本不用混乱可变大小的块.每个分配是128字节,无论你要求多少.

当然,如果你要求更多,它返回NULL.

通过使用固定长度的块,我们能够极大地加快分配和分配,使用位图和相关联的结构来保存会计信息,而不是依赖于较慢的链表.此外,不需要合并自由区块.

当然,这是一个特殊情况,但是你会发现这样的游戏也是如此.实际上,我们甚至在一个通用系统中使用这个系统,其中低于某个阈值的分配从一个自我管理的预先分配的池中获得了固定的内存量.任何其他分配(大于阈值或池完全分配)被发送到“真实”malloc.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...