0

http://www.haskell.org/ghc/docs/latest/html/libraries/base/src/GHC-IO-FD.htmlを見てきました。そこでは次のように述べています。

-- 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 値を変更できますか?

4

1 に答える 1

1

ソースでこれを変更し、GHC を新しいサイズでコンパイルできます。これはパフォーマンスに影響を与える可能性があります (極端な値の場合は確かに影響します) が、それ以外の場合はおそらく気付かないでしょう。

それ以外は変更できません。

ベースのソースをすばやく検索すると、1 つの使用サイトのみが表示されました。

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

そのため、コンパイル後に別の値をプラグインできる場所はありません。

于 2012-05-04T10:42:47.947 に答える