当前位置: 技术问答>linux和unix
奇怪的问题!!!!!!!!!!!!!!关于写文件。
来源: 互联网 发布时间:2015-11-26
本文导语: 各位请指教一二. 我在linux平台下写一个大约60M的文件,10秒钟左右就完成了.但是却占用了60M内存. 由此判断linux平台下的文件流操作可能先写入内存,以便保证速度.但是很长时间也不见 数据由内存同步到磁盘上.不知linux...
各位请指教一二.
我在linux平台下写一个大约60M的文件,10秒钟左右就完成了.但是却占用了60M内存.
由此判断linux平台下的文件流操作可能先写入内存,以便保证速度.但是很长时间也不见
数据由内存同步到磁盘上.不知linux平台下有什么特殊的函数需要调用。
请大虾们指示一下。
该程序在Win32平台没有问题只是写文件慢很多而已。
我在linux平台下写一个大约60M的文件,10秒钟左右就完成了.但是却占用了60M内存.
由此判断linux平台下的文件流操作可能先写入内存,以便保证速度.但是很长时间也不见
数据由内存同步到磁盘上.不知linux平台下有什么特殊的函数需要调用。
请大虾们指示一下。
该程序在Win32平台没有问题只是写文件慢很多而已。
|
用free命令看内存时, shared,buffers,cached都不是真正被使用的,你可以当成free的内存,也就是free那一栏的数字实际上并不是真正可使用的内存,实际可使用内存要大很多。
linux做文件操作时,会把文件数据放入buffers和cache中,这样下次再访问同样数据时会快很多,所以做文件操作之后你会看到free减少很多,但是不要担心,并不是真正减少。
写数据时,会放到buffers和cache中,可能随后才真正写入,你可以调用sync系统调用或者使用sync命令强制立刻写入。
linux做文件操作时,会把文件数据放入buffers和cache中,这样下次再访问同样数据时会快很多,所以做文件操作之后你会看到free减少很多,但是不要担心,并不是真正减少。
写数据时,会放到buffers和cache中,可能随后才真正写入,你可以调用sync系统调用或者使用sync命令强制立刻写入。
|
是不是默认缓冲太大了
|
同意x86(大雪)的解释
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。