动态存储分配中的箱装算法的意外效率:一项学术摘要

摘要:以2DBP求解器为黑盒子来看待分配器的最近工作具有意义。例如,存在一种基于2DBP的碎片度量,它通常与最大驻留集大小(RSS)呈单调相关。鉴于该领域对于碎片化定义的不确定性,以及物理内存节省的巨大价值,我们有动力将分配器生成的放置与其2DBP设计的最优化对应进行比较。当然,分配器必须在线操作,而2DBP算法则需要完整的请求跟踪;但由于双方都优化与最小化内存浪费相关的标准,研究它们之间的关系的想法保持了其知识上和实际上的兴趣。 不幸的是,目前尚无针对DSA的2DBP算法的实现。本文提出了一个第一个、虽然是部分的、最先进的实现。我们通过将其输出的最大工作时间与原始作者提供的理论上限进行比较来验证其功能。在此过程中,我们还鉴定和记录了关键细节,以帮助类似的未来工作。 我们的实验包括4种现代分配器和8种真实的应用工作负载。我们对我们的实证证据做出了几个值得注意的观察:就最大工作时间而言,分配器在93.75%的时间内优于Robson的最坏情况下的下限。在87.5%的情况下,GNU的malloc实现表现出与2DBP最先进相当或更好的性能,尽管第二者是离线操作的。 最令人惊讶的是,2DBP算法在碎片化方面表现出色,最多产生2.46倍更优的解决方案。未来的研究可以利用这些见解来进行针对内存的优化。

作者:Christos P. Lamprakos, Sotirios Xydis, Francky Catthoor and Dimitrios Soudris

论文ID:2305.01497

分类:Programming Languages

分类简称:cs.PL

提交时间:2023-05-03

PDF 下载: 英文版 中文版pdf翻译中