成像你得到一些包含字节的内存:[—– – – ——–]
让我们说“”是指分配,“ – ”表示免费.
我正在寻找如何计算碎片百分比的公式.
背景:我正在为具有静态内存的嵌入式设备实现一个微小的动态内存管理.我的目标是让我可以用来存储少量的数据.大多数无线连接的传入数据包每个128个字节.
感谢您的帮助.
解决方法
正如R.所说,它完全取决于你的意思是“碎片的百分比” – 但你可以使用一个简单的公式是:
(free - freemax) ---------------- x 100% (or 100% for free=0) free
哪里
free = total number of bytes free freemax = size of largest free block
这样,如果所有内存都在一个大块中,则碎片为0%,如果内存都被雕刻成数百个小块,那么它将接近100%.