【发布时间】:2012-03-16 13:23:06
【问题描述】:
我该如何定义
pipe :: Handle -> Handle -> IO ()
以 Haskell 中最有效的方式(平台 2011-04 或 ghc 7.4)?
更新 1:How to write a minimal-overhead proxy to localhost:3389 in Haskell?
更新 2:Using GNU/Linux system call `splice` for zero-copy Socket to Socket data transfers in Haskell
使用 GNU/Linux 系统调用 splice 在两个网络套接字之间进行零拷贝数据管道,还为用 Haskell 编写的便携式套接字到套接字 splice 替代品腾出了空间,它使用 (mallocBytes, hGetBufSome 和 hPutBuf) 在整个数据传输循环中一次性分配的用户空间缓冲区避免了微小的分配,这些分配会导致垃圾收集器重复调用 recv、sendAll 从 bytestring 包中产生压力。
【问题讨论】: