打印

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

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

使用特权

评论回复
板凳
spark周| | 2018-5-9 14:36 | 只看该作者
你的段都是分配在外部RAM?

使用特权

评论回复
地板
jiaxw|  楼主 | 2018-5-9 14:39 | 只看该作者

某些段在内,某些在外

使用特权

评论回复
5
liliang9554| | 2018-5-9 14:42 | 只看该作者
你的数组应该是全局的吧,全局的不在栈里啊

使用特权

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

使用特权

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

使用特权

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

使用特权

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

使用特权

评论回复
10
jiajs| | 2018-5-9 15:00 | 只看该作者

这是malloc的基础资料的,需要多注意理解的。

使用特权

评论回复
11
jiaxw|  楼主 | 2018-5-9 15:06 | 只看该作者

嗯,预料中的结果,先结贴吧,多谢大家啦

使用特权

评论回复
12
baimiaocun2015| | 2018-5-12 18:09 | 只看该作者
zhaoxqi 发表于 2018-5-9 14:57
分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定),否则返回空指针NULL。当内存不再使用时, ...

这个很不错的介绍,学习下的

使用特权

评论回复
13
firstblood| | 2018-5-12 18:32 | 只看该作者
malloc的执行效率低是多了些内存的访问操作的

使用特权

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

本版积分规则

825

主题

9762

帖子

4

粉丝