2012-03-08 33 views
0

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

我想这样做的原因是因为发送惰性ByteString s会直接导致为每个服务器响应创建大量对象,并且由于垃圾收集过多(在GC中花费了40%)而导致服务器停止运行。

我正在调查IOUArray但这只适用于Int,Word32等,但不适用于ByteString

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

我在网上查了很多文档,但是他们的地址是IOArrayIORef,但从来没有一个ByteStrings数组。

我非常感谢任何指针,如何去做这个或在哪里寻找更多的信息。

回答

相关问题