您的位置:首页 > 其它

13.8 总结

2016-04-13 22:37 232 查看
13.8 总结

输入输出数据的缓冲由内核和stdio库完成。有时可能希望阻止缓冲,但这需要了解其对应用程序性能的影响。可以使用各种系统调用和库函数来控制内核和stdio 缓冲,并执行一次性的缓冲区刷新。

进程使用posix_fadvise()函数,可就进程对特定文件可能采取的数据访问模式向内核提出建议。内核可籍此来优化对缓冲区高速缓存的应用,进而提高I/O性能。

在Linux环境下,open()所特有的O_DIRECT标识允许特定应用跳过缓冲区高速缓存。

在对同一个文件执行I/O操作时,fileno()和fdopen()有助于系统调用和标准C语言库函数的混合使用。给定一个流,fileno()将返回相应的文件描述符,fdopen()则反其道而行之,针对指定的打开文件描述符创建一个新的流。

补充信息

[Bach,1986]描述了System V中缓冲区高速缓存的实现和优势。[Goodheart & Cox,1994]和[Vahalia,1996]也描述了System V缓冲区高速缓存的基本原理和实现。更多关于Linux环境下的相关信息参见[Bovet & Cesati,2005] 和 [Love,2010]。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: