在Haskell中创建用于保存ByteStrings的Buffer的正确方法是什么

时间:2012-03-08 19:24:49

标签: networking haskell bytearray

我正在尝试在内存中创建一个缓冲区,我可以使用它来通过套接字将ByteString从服务器发送到客户端。我希望它是可变的,所以我可以重复使用它。

我想这样做的原因是因为直接发送延迟ByteString会导致为每个服务器响应创建大量对象,并且由于过多的垃圾收集而导致服务器速度降低(在GC中花费40%)。

我正在研究IOUArray,但这仅适用于IntWord32等,但不适用于ByteString

我正在研究的另一个选择是创建一个Array Int (IORef ByteString) - 每个ByteString必须具有相同的大小,但我不确定这是否是正确的方法。

我在线查看了大量文档,但是它们要么是IOArray,要么是IORef,而是来自ByteStrings数组。

我非常感谢任何指示,如何去寻找或寻找更多信息。

1 个答案:

答案 0 :(得分:3)

也许你会喜欢blaze-builder包。