【问题标题】:Is there any reason that default buffer sizes are 4096? [closed]默认缓冲区大小为 4096 是否有任何原因? [关闭]
【发布时间】:2014-04-11 04:25:26
【问题描述】:

我经常看到到处都使用 4096 作为默认缓冲区大小。为什么选择 4096 而不是另一个值?

【问题讨论】:

  • Jon Skeet 选择了那个号码。
  • 我认为这与内存页面大小有关。
  • @michael:Jon Skeet 发明了这个数字。在他编写缓冲区代码之前,宇宙从 4095 跳到了 4097。(无法抗拒。这是一个古老的模因,但很有趣。)
  • 这是一个页面的大小。
  • 一个常见的page size,4*1024 或 4K。

标签: c# buffer filestream streamwriter bufferstrategy


【解决方案1】:

这实际上取决于您的问题,但该问题的一般折衷解决方案是 4KB。 您可以在下面列出的链接中找到此选择的一个很好的描述:

File I/O with streams - best memory buffer size

http://social.msdn.microsoft.com/Forums/en-US/ed3c6dea-400e-489c-9a86-b43b3a78cc1c/quick-question-about-filestream-buffering?forum=csharpgeneral

C# FileStream : Optimal buffer size for writing large files?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-03
    • 1970-01-01
    • 2015-06-07
    • 1970-01-01
    • 2016-09-21
    • 2013-09-29
    • 2012-05-08
    • 2013-08-14
    相关资源
    最近更新 更多