fsync()消耗时间的问题

yrbls 2007-06-22 11:47:47
在做U盘存储时,每次write()之后做fsync(),每次存储的数据都为固定的8K数据,为什么每次执行write()和fsync()消耗的时间多数约为十几毫秒,但也会出现一两百毫秒的情况,为什么时间差别这么大
...全文
1564 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yrbls 2007-06-27
  • 打赏
  • 举报
回复
to:cceczjxy()
我每次做完fsync()是不是会自动清除缓存,那就不会出现你所说的2、3的情况,我现在每存8K都做一次fsync(),为什么所花费的时间还不一样
OstrichFly 2007-06-27
  • 打赏
  • 举报
回复
因为写数据快,但寻道或分配磁盘块比较慢。
如果当前文件系统为这个文件分配的文件存储布局有空余空间,磁头又恰好在要写的位置,很快,
反之要花更多的时间。
cceczjxy 2007-06-27
  • 打赏
  • 举报
回复
因为的系统不是只你一个程序在运行呀.
2,3两种情况是系统内核管理的.和你的程序是异步进行的.你的程序在运行,他们也在运行.
jlu3389 2007-06-23
  • 打赏
  • 举报
回复
mark
cceczjxy 2007-06-23
  • 打赏
  • 举报
回复
这和系统缓存机制及MMC有关,
在调用write把数据写入以后,实际上是写入的缓存中.
有3中情况下系统会把缓存中数据写会磁盘中:
1,调用fsync() ,sync()等强制同步函数.
2,缓存已满.
3.MMC管理分配内存是发现内存不足,也会把缓冲区内数据写出而收会缓冲区.

对于你所遇到的情况,在你调用fsync时,2,3两中情况如果已发生,那时间就很短,如果没有,往u盘上8K数据有时是很慢的.
这个时间差别,也和你的u盘写入速度有关.
内容概要:本文系统介绍了基于MATLAB平台的风力涡轮机雷达信号仿真研究,涵盖完整的仿真代码、实测数据及配套学术文章,重点实现雷达信号处理、风力涡轮机回波建模、微动特征提取与时频分析等核心技术。通过高精度模拟风机叶片旋转引起的调制效应与雷达散射截面变化,深入揭示风力发电场对周边雷达系统造成的电磁干扰机制,为雷达杂波抑制、目标检测优化及空域兼容性设计提供理论支撑与技术验证平台。资源内容还可拓展应用于无人机路径规划、电动汽车调度、电力系统优化等交叉领域,展现MATLAB在复杂系统仿真中的强大集成能力。; 适合人群:具备MATLAB编程基础与雷达信号处理知识的科研人员,适用于从事新能源并网影响评估、雷达系统设计、电磁兼容分析、智能电网或远程 sensing 领域研究的研究生、工程师及高校教师; 使用场景及目标:①开展风电场对空中监视雷达干扰效应的仿真评估;②研究风电杂波的时频特性与微多普勒特征建模方法;③开发针对非合作目标干扰的雷达抗干扰算法与信号分离技术;④作为科研项目申报、论文复现或工程预研的技术原型工具包; 阅读建议:建议结合百度网盘提供的完整资料包(含代码、数据集与参考文献)同步学习,优先运行示例脚本以掌握仿真流程,再根据具体研究需求调整系统参数进行扩展实验,同时可借鉴文中提到的其他MATLAB仿真案例以提升研究深度与广度。

23,223

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧