打印
[MCU]

malloc会比数组效率低这么多?

[复制链接]
870|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jiaxw|  楼主 | 2020-6-26 19:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
jiaxw|  楼主 | 2020-6-26 19:15 | 只看该作者
求教一个DSP开发的问题:DSP上的堆栈都是在外部存储器上分配的,我一个函数中对比了两种方法:一个是malloc数据区域进行数据读写,另一个是定义数组,因为涉及到大循环操作,前者耗时比后者大了非常多,不明白同样是到外部存储器上读数据,malloc会比数组效率低这么多?

使用特权

评论回复
板凳
spark周| | 2020-6-26 19:19 | 只看该作者
你的段都是分配在外部RAM?

使用特权

评论回复
地板
jiaxw|  楼主 | 2020-6-26 19:23 | 只看该作者
某些段在内,某些在外

使用特权

评论回复
5
liliang9554| | 2020-6-26 19:26 | 只看该作者
你的数组应该是全局的吧,全局的不在栈里啊

使用特权

评论回复
6
shimx| | 2020-6-26 19:29 | 只看该作者
extern void *malloc(unsigned int num_bytes);分配长度为num_bytes字节的内存块。

使用特权

评论回复
7
spark周| | 2020-6-26 19:35 | 只看该作者
malloc的全称是memory allocation,中文叫动态内存分配,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。

使用特权

评论回复
8
liliang9554| | 2020-6-26 19:38 | 只看该作者
该函数的原型,在以前malloc返回的是char型指针,新的ANSIC标准规定,该函数返回为void型指针,因此必要时要进行类型转换。

使用特权

评论回复
9
zhaoxqi| | 2020-6-26 19:41 | 只看该作者
分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定),否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。函数返回的指针一定要适当对齐,使其可以用于任何数据对象。

使用特权

评论回复
10
jiajs| | 2020-6-26 19:44 | 只看该作者
这是malloc的基础资料的,需要多注意理解的。

使用特权

评论回复
11
gongche| | 2020-6-26 19:47 | 只看该作者
malloc的执行效率低是多了些内存的访问操作的

使用特权

评论回复
12
jiaxw|  楼主 | 2020-6-27 10:56 | 只看该作者
嗯,预料中的结果,多谢大家啦

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

825

主题

9762

帖子

4

粉丝