2012-05-04 139 views
0

我看过http://www.haskell.org/ghc/docs/latest/html/libraries/base/src/GHC-IO-FD.html。它指出:我们可以更改我们自己的dEFAULT_FD_BUFFER_SIZE值吗?

-- We used to use System.Posix.Internals.dEFAULT_BUFFER_SIZE, which is 
-- taken from the value of BUFSIZ on the current platform. This value 
-- varies too much though: it is 512 on Windows, 1024 on OS X and 8192 
-- on Linux. So let's just use a decent size on every platform: 
dEFAULT_FD_BUFFER_SIZE :: Int 
dEFAULT_FD_BUFFER_SIZE = 8096 

我们可以更改我们自己的dEFAULT_FD_BUFFER_SIZE值吗?

+0

8096是一个奇怪的大小。它是一个简单的错字,还是96字节的开销预期(但没有在该源文件的任何地方用注释调出)? – dave4420

回答

1

您可以在源代码中更改它,并使用新大小编译GHC。这可能会有性能影响(它肯定会对极端值),但否则您可能不会注意到。

除此之外,你不能改变它。

base源快速搜索只显示一个使用部位,

instance BufferedIO FD where 
    newBuffer _dev state = newByteBuffer dEFAULT_FD_BUFFER_SIZE state 
    fillReadBuffer fd buf = readBuf' fd buf 
    fillReadBuffer0 fd buf = readBufNonBlocking fd buf 
    flushWriteBuffer fd buf = writeBuf' fd buf 
    flushWriteBuffer0 fd buf = writeBufNonBlocking fd buf 

所以没有地方,你可以插上编译后不同的值。

相关问题