作为我正在学习的操作系统课程的一部分,我已经实现了一个内存分配器(就像C语言中的malloc)。空闲空间存储在链表中。
我的问题是:如何测试各种分配策略(例如首次适应、最佳适应和最坏适应)?目前,我只是预定义了一定次数的迭代,每次分配大小为1-N字节的块,其中N大约为20000。基本上,我进行了一些迭代的分配,然后通过释放一些已分配的块来改变它。在退出之前,我检查自由列表并计算外部碎片。我不确定这是否是正确的方法,还是有更好的方法?
选择每种策略的随机块大小的一个问题是,如果分配的块大小不同,就无法真正比较它们,对吗?因此,另一种选择是执行相同的测试,只是现在在测试每种策略时使用相同的分配大小并释放相同的块。
希望这不会太令人困惑 :)
我的问题是:如何测试各种分配策略(例如首次适应、最佳适应和最坏适应)?目前,我只是预定义了一定次数的迭代,每次分配大小为1-N字节的块,其中N大约为20000。基本上,我进行了一些迭代的分配,然后通过释放一些已分配的块来改变它。在退出之前,我检查自由列表并计算外部碎片。我不确定这是否是正确的方法,还是有更好的方法?
选择每种策略的随机块大小的一个问题是,如果分配的块大小不同,就无法真正比较它们,对吗?因此,另一种选择是执行相同的测试,只是现在在测试每种策略时使用相同的分配大小并释放相同的块。
希望这不会太令人困惑 :)