完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛扫一扫,分享给好友
|
[tr]用以下两种方式,分别向3个文件写入80M字节。方式1:循环向3个文件写8k字节数据,直到写满80M字节。
i = 10240; while (i--) { res = f_write(&pfile, &buf_temp, 8192, &fwrite_cnt); if (FR_OK != res) break; res = f_write(&pfile2, &buf_temp, 8192, &fwrite_cnt); if (FR_OK != res) break; res = f_write(&pfile3, &buf_temp, 8192, &fwrite_cnt); if (FR_OK != res) break; } 方式2:每次写8k字节,写完80M字节到1个文件,再写另一个文件。 i = 10240; while (i--) { res = f_write(&pfile, &buf_temp, 8192, &fwrite_cnt); if (FR_OK != res) break; } i = 10240; while (i--) { res = f_write(&pfile2, &buf_temp, 8192, &fwrite_cnt); if (FR_OK != res) break; } i = 10240; while (i--) { res = f_write(&pfile3, &buf_temp, 8192, &fwrite_cnt); if (FR_OK != res) break; } 方式1耗时约4分55秒,即295秒,方式2耗时约60秒。耗时比例约为5:1。 我所做项目是多通道录音设备,当前采用的是方式1写各个通道的数据到不同文件,由于写入速度限制,无法达到要求的最高采样率。 请问怎么才能解决这个矛盾? [/tr] |
|
相关推荐
4个回答
|
|
|
|
|
|
|
|
|
嗯,这个可以考虑。 但是我们这边没人会OMAP138的ARM端开发。 我现在打算改变程序结构,每个文件的写操作用一个任务来管理。 目前测试了,使用3个任务各写1个80M字节的文件,结构类似于方式1,但是写入的时间缩短为120秒左右。 |
|
|
|
|
|
|
|
|
|
|
|
嗯,环形缓冲队列是必须的。 我现在用5个任务分别写5个文件,当提高f_write单次写入的数据块大小时,可以明显提高文件写入速度。 比如,我做的项目是录音设备,f_write单次写入8k数据时,写入速度跟不上数据产生的速度;改为单次写入32k时,就可以解决这个问题了。 不知道你有没有这样的经验呢? |
|
|
|
|
只有小组成员才能发言,加入小组>>
【创龙TLT113-MiniEVM开发板试用体验】相关开发过程的体验,以及与毫米波雷达的联调
925 浏览 0 评论
【创龙TL3562-MiniEVM开发板试用体验】--MQTT通讯
926 浏览 0 评论
【创龙TL3562-MiniEVM开发板试用体验】问题4 ubuntu镜像,opencv不能正常工作??
1012 浏览 0 评论
【创龙TL3562-MiniEVM开发板试用体验】10、 Qt实现ADC采集显示和内部温度曲线监控
1461 浏览 0 评论
【创龙TLT113-MiniEVM开发板试用体验】U盘读写速度测试教程
1831 浏览 0 评论
【创龙TL3562-MiniEVM开发板试用体验】问题1 更换到Ubuntu镜像后,USB识别不了外设
471浏览 1评论
【创龙TL3562-MiniEVM开发板试用体验】1、从系统启动卡制作开始
721浏览 1评论
【创龙TL3562-MiniEVM开发板试用体验】Grove移植4之BUTTON
326浏览 0评论
【创龙TL3562-MiniEVM开发板试用体验】--开发板外设与接口测试
813浏览 0评论
1129浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 02:42 , Processed in 0.767511 second(s), Total 80, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1710