社区
C语言
帖子详情
请教高手指点, 关于 fopen 与 fclose 的性能比较?
xqmarine
2009-04-22 01:45:04
在同一个函数中, fclose和fopen调用的次数一样多, 但fclose占cpu 60.7% , fopen 的cpu占用时间才 9.7% !
另外个函数中, fopen调用两次 0.02% , fclose调用一次 0.01% (我觉的这个似乎正常)
难道fclose更耗性能吗? 无非一个打开文件操作,一个关闭啊, 请知道的高手指点下
...全文
786
8
打赏
收藏
请教高手指点, 关于 fopen 与 fclose 的性能比较?
在同一个函数中, fclose和fopen调用的次数一样多, 但fclose占cpu 60.7% , fopen 的cpu占用时间才 9.7% ! 另外个函数中, fopen调用两次 0.02% , fclose调用一次 0.01% (我觉的这个似乎正常) 难道fclose更耗性能吗? 无非一个打开文件操作,一个关闭啊, 请知道的高手指点下
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cxxer
2009-04-22
打赏
举报
回复
fclose函数会刷缓冲区
lingyin55
2009-04-22
打赏
举报
回复
[Quote=引用 5 楼 xqmarine 的回复:]
数据存储到硬盘不是 fflush吗, fclose函数本身会刷缓冲区吗
[/Quote]
在fclose之前,所有要写入文件的数据都是暂存在缓冲区中的,
这时要写入的文件还是空白,只有执行完fclose之后,才会将缓冲区
的数据写入到文件中。
性能侠客行
2009-04-22
打赏
举报
回复
同一个函数中, fclose和fopen调用的次数一样多, 但fclose占cpu 60.7% , fopen 的cpu占用时间才 9.7% !
另外个函数中, fopen调用两次 0.02% , fclose调用一次 0.01% (我觉的这个似乎正常
fopen 一般是读目录扇区,然后查找是否存在该文件.(以fat为例,一个目录项只有32 bytes ,所以 一般情况下读目录扇区,也是几个扇区).
因此,cpu 耗费小了.
fclose 时候,一般会将剩下数据写到 硬盘介质中,而且,通常会 写fat 表与目录项.
这个时间,肯定比fopen时间长的...
有兴趣可以看看 linux src ..看看fs 相关代码.
xqmarine
2009-04-22
打赏
举报
回复
数据存储到硬盘不是 fflush吗, fclose函数本身会刷缓冲区吗
猫已经找不回了
2009-04-22
打赏
举报
回复
这个主要还是由于文件IO的全缓冲模式,加上fwrite偷懒,导致的.
如果是不带缓冲区的设备,就不会导致fclose这么低效了,像stderr就是不带缓冲的.
猫已经找不回了
2009-04-22
打赏
举报
回复
fclose在关闭文件描述符之前还要冲洗缓冲区呢.
liliangbao
2009-04-22
打赏
举报
回复
可能在fclose的时候才写文件,因为这时最消耗时间~
而打开后都是先暂存在内存中,这样节省时间~
I11
2009-04-22
打赏
举报
回复
没有代码,不好说原因
感觉和打开文件以后对文件的操作有关系,比如写入一些数据,实际上os并没有当时写入磁盘,而是在fclose的时候写入
C++ 如何用创建txt文件,并且写入内容(汇总)
#include int main() { FILE *fp; char fname[32];/*文件名*/ printf("请输入文件名\n"); scanf("%s",fname);/*输入文件名*/ ...fp=
fopen
(fname,"a");...
fclose
(fp); return 0; } 使用
fopen
的w
php base64 转 amr,
请教
PHP sdk 进行音频amr转MP3的问题
目前有项目需要使用七牛云的音频转码的功能,将微信的amr格式转换为MP3格式,自己写了一个测试demo,可是发现音频并没有转换成功,由于之前没有使用过七牛云的相关功能,所以我想问一下...> 希望能得到大神的
指点
谢谢
江湖救急,
请教
各路大虾这是什么原因导致的错误!
本人是一个刚接触c语言不久的菜鸟,希望江湖上各路大虾
指点
一下小子导致这个错误的原因。谢谢啦! 源代码如下:#include #include #include #define N 100 #define LEN sizeof(struct staff) #define ...
学生信息管理系统C实现
最近看了一些数据结构的书,感觉看书的时候看一段时间就感到厌倦了,个人觉得光看书枯燥无味而且也没多大收获,倒不如丢开书本自己写代码,遇到不会的再看书或
请教
别人,于是决定写一些代码,也算是我学了...
记一次数据结构与算法作业:利用循环和递归输出1-N的正整数的程序分析
比较
随便记录一次数据结构与算法的分析作业,内容为分析循环和递归实现输出1-N的正整数的对比。从时间和空间上分析了两种方式实现的递归方法和循环区别。
C语言
70,026
社区成员
243,244
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章