MQX内存管理的缺陷-申请大量内存块后释放速度会变慢

2020-02-20 20:53发布

  我们的实际应用中需要申请大量的内存块,内存块大小不同,这时如果要释放其中的某一个内存块,需要很长时间而且这段时间是无法响应中断的,严重影响了产品。
  我学习了下MQX关于内存管理这部分的代码,发现MQX将申请的内存块作为一个单向链表,释放时每次都遍历很长时间才能找到需要释放的内存块,而且这期间代码
内有明确的关中断。不知道其他坛友是否也碰到过这个问题?
  这部分代码我自己修改了部分,减少了遍历时间,但是感觉MQX在内存管理部分有些混乱,官方是不是考虑更新一下。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
fengyunyu
1楼-- · 2020-02-20 22:31
 精彩回答 2  元偷偷看……
sblpp
2楼-- · 2020-02-21 00:41
会跑的多慢??
fengyunyu
3楼-- · 2020-02-21 04:42
sblpp 发表于 2014-11-7 12:05
会跑的多慢??

从LZ描述看,并不是一直慢,而是释放内存的时间过长,且关了中断,相当于“假死机”。
wye11083
4楼-- · 2020-02-21 07:09
你自己写个内存池不得了。高性能应用向来都是用内存池。
步之道
5楼-- · 2020-02-21 07:15
楼主用的内存释放方法是不是官方例程中用的呢?预计还是释放的方法问题,如果要真是硬件问题估计FSL这一个系列都会有问题,但是觉得不可能。最大有可能是库函数支持问题。
步之道
6楼-- · 2020-02-21 07:24
 精彩回答 2  元偷偷看……

一周热门 更多>