linux – SD卡写性能
我正在编写一个小应用程序,它在SD卡上以恒定速率写入jpeg图像. 我的写循环看起来像这样:
或者像这样:
我还显示了一些时序统计信息,我可以看到我的程序有时会被阻止几秒钟. 一些精度: 关于平均写入速率的精确度: 系统是一台现代笔记本电脑运行ubuntu 8.04与库存记录(2.6.24.19) 最佳答案
尝试使用O_DIRECT打开文件并在应用程序级别执行缓存.
当我们在STB Box中实现PVR(个人视频记录)功能时,我们遇到了类似的问题. O_DIRECT技巧最终满足了我们的需求.(*) 没有O_DIRECT. write()的数据首先缓存在内核缓冲区中,然后在调用fsync或内核缓存缓冲区已满时刷新到媒体.(**). 使用O_DIRECT.Th内核将DMA直接作为参数传递给写入系统调用的用户空间缓冲区指向的物理内存.因此,在用户空间内存和内核缓存之间的副本中不会占用CPU和内存带宽,并且在内核中不会花费CPU时间来管理缓存(如缓存查找,每页锁等). (从here复制) 不确定它是否也可以解决您的问题,但您可能想尝试一下. *尽管Linus的O_DIRECT是critize,它确实解决了我们的问题. **假设您没有使用O_DSYNC或O_SYNC打开文件 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux – 如何找到apt-get安装属于包的文件的位置
- 使用Postman工具/ cURL /在Chrome控制台中测试CORS
- linux – 阻止多次运行应用程序的命令/工具
- linux – 如何在屏幕下的vi中使用光标键?
- LINUX实战:VMware中网络设置之Bridged模式图解
- nfs – 皮重vmdk文件不保留细长度
- linux 服务器安全加固和内核参数调优 nf_conntrack
- linux – Jenkins`make gradlew executable`选项不会使`gra
- linux – 允许紧急访问托管人员的策略
- 解决SecureCRTPortable和SecureFXPortable的中文乱码问题