不明白同样是到外部存储器上读数据,malloc会比数组效率低这么多?

[复制链接]
613|12
 楼主| jiaxw 发表于 2018-5-9 14:28 | 显示全部楼层 |阅读模式
不明白同样是到外部存储器上读数据,malloc会比数组效率低这么多?
 楼主| jiaxw 发表于 2018-5-9 14:31 | 显示全部楼层
求教一个DSP开发的问题:DSP上的堆栈都是在外部存储器上分配的,我一个函数中对比了两种方法:一个是malloc数据区域进行数据读写,另一个是定义数组,因为涉及到大循环操作,前者耗时比后者大了非常多,不明白同样是到外部存储器上读数据,malloc会比数组效率低这么多?
spark周 发表于 2018-5-9 14:36 | 显示全部楼层
你的段都是分配在外部RAM?
 楼主| jiaxw 发表于 2018-5-9 14:39 | 显示全部楼层

某些段在内,某些在外
liliang9554 发表于 2018-5-9 14:42 | 显示全部楼层
你的数组应该是全局的吧,全局的不在栈里啊
shimx 发表于 2018-5-9 14:45 | 显示全部楼层
extern void *malloc(unsigned int num_bytes);分配长度为num_bytes字节的内存块。
spark周 发表于 2018-5-9 14:49 | 显示全部楼层
malloc的全称是memory allocation,中文叫动态内存分配,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。
liliang9554 发表于 2018-5-9 14:54 | 显示全部楼层
该函数的原型,在以前malloc返回的是char型指针,新的ANSIC标准规定,该函数返回为void型指针,因此必要时要进行类型转换。
zhaoxqi 发表于 2018-5-9 14:57 | 显示全部楼层
分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定),否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。函数返回的指针一定要适当对齐,使其可以用于任何数据对象。
jiajs 发表于 2018-5-9 15:00 | 显示全部楼层

这是malloc的基础资料的,需要多注意理解的。
 楼主| jiaxw 发表于 2018-5-9 15:06 | 显示全部楼层

嗯,预料中的结果,先结贴吧,多谢大家啦
baimiaocun2015 发表于 2018-5-12 18:09 | 显示全部楼层
zhaoxqi 发表于 2018-5-9 14:57
分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定),否则返回空指针NULL。当内存不再使用时, ...

这个很不错的介绍,学习下的
firstblood 发表于 2018-5-12 18:32 | 显示全部楼层
malloc的执行效率低是多了些内存的访问操作的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

825

主题

9762

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部