2012-05-04 203 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 

所以沒有地方,你可以插上編譯後不同的值。

相關問題