我们的实际应用中需要申请大量的内存块,内存块大小不同,这时如果要释放其中的某一个内存块,需要很长时间而且这段时间是无法响应中断的,严重影响了产品。
我学习了下MQX关于内存管理这部分的代码,发现MQX将申请的内存块作为一个单向链表,释放时每次都遍历很长时间才能找到需要释放的内存块,而且这期间代码
内有明确的关中断。不知道其他坛友是否也碰到过这个问题?
这部分代码我自己修改了部分,减少了遍历时间,但是感觉MQX在内存管理部分有些混乱,官方是不是考虑更新一下。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
对,我看了看我们需要释放近8000个内存块,需要等很长时间其他任务才会执行,因为定时器中断无法响应了
楼主可以参考ucos的存储管理
通用的内存分配器总会在实现的时候有取舍;据说实时系统效率比较高的是TLSF那个分配器。
一周热门 更多>