C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 写入的最佳缓冲区大小(2)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我想在文件中写入1 GB的数据,比如说使用write(2)系统调用的ext3 Linux文件系统,这种情况发生在一个非常繁忙的环境中(很多类似的I / O很简单).间隔中的最佳缓冲区大小是多少,例如,[4 kB,4 MB]

>不使用O_DIRECT打开标志,或
>使用O_DIRECT?

请不要“自己检查”答案 – 我想从“文件系统”人那里得到答案.

解决方法

正如评论中所讨论的那样,我认为确切的大小并不重要,假设它是:

>文件系统大小的一小部分(见Joachim Pileborg评论建议stat(“.”)等)
> 2的幂(因为计算机和内核像他们一样)
>不要太大(例如适合处理器内的某些缓存,例如L2缓存)
>在内存中对齐(例如使用posix_memalign缩放到页面大小).

因此,16k字节和几兆字节之间的2的功率应该是合适的.大部分时间都花在阅读磁盘上.文件系统和磁盘基准测试在该范围内非常平坦.

4Kbytes似乎通常是页面大小和磁盘块大小.

当然,在使用文件系统块大小mke2fs创建文件系统时,您可以调整@L_874_16@,甚至调整.

我敢打赌,最优化实际上取决于您的硬件(SSD,硬盘?)和您的系统(及其负载).

大佬总结

以上是大佬教程为你收集整理的c – 写入的最佳缓冲区大小(2)全部内容,希望文章能够帮你解决c – 写入的最佳缓冲区大小(2)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。