我使用的是嵌入式系统。该应用程序在AT91SAMxxxx和cortex m3 lpc17xxx上运行。我正在研究动态内存分配,因为它会极大地改变应用程序的面貌(并给我更多的权力)。
我认为我唯一真正的途径是为堆设置一个内存区域,并设计一个最适合(双关语)我的目的的定制malloc。
在研究不同的内存分配算法时,你一定会偶然发现Doug Lea的malloc。我认为这已经在嵌入式系统中使用过,比如我的嵌入式系统,那里没有操作系统,并且提供了sbrk()函数的定制版本来实现这一点。在我开始写自己的文章之前,我正在努力寻找实现这一目标的好例子,也许可以尝试概念验证。
有可能在像我这样的系统中使用dlmalloc吗?
如果是,有人能给我指一个相关的资源吗?(没有找到很多帮助我的)
去写我自己的malloc更好吗?
抱歉,到目前为止,我的大部分研究都是在设计一个不使用甜甜圈的锦葵,这是一个不同的挑战。我想我正试图找出更深入地研究这条路线是在浪费时间。
编辑:
故事的寓意:在我的案例中,看看dlmalloc毫无意义。
对于您的情况,您自己实现malloc
或dlmalloc
当然是可能的,但不可取。
在极低级别的嵌入式系统、裸金属MCU等上,使用malloc是毫无意义的。
你将运行你的应用程序,并且只在它们上运行应用程序,你知道你有多少内存,可以使用多少内存,并且你完全能够根据这些需求定制你的程序。使用malloc可以节省内存,但这在这里毫无意义。如果你的程序在最高内存使用率下没有超过设备上的可用内存,并且你的程序是唯一运行的程序,那么就没有理由使用malloc,也没有理由让任何内存闲置。
tl;dr这是可能的,但毫无意义。