2012-03-08 37 views
0

我正嘗試在內存中創建一個緩衝區,我可以使用它來通過套接字將ByteString從服務器發送到客戶端。我希望它是可變的,所以我可以重用它。什麼是正確的方式來創建一個緩衝區來保存Haskell中的ByteStrings

我想這樣做的原因是因爲發送惰性ByteString s會直接導致爲每個服務器響應創建大量對象,並且由於垃圾收集過多(在GC中花費了40%)而導致服務器停止運行。

我正在調查IOUArray但這隻適用於Int,Word32等,但不適用於ByteString

我正在研究的另一個選項是創建一個Array Int (IORef ByteString) - 每個ByteString必須具有相同的大小,但我不確定這是否是正確的方法。

我在網上查了很多文檔,但是他們的地址是IOArrayIORef,但從來沒有一個ByteStrings數組。

我非常感謝任何指針,如何去做這個或在哪裏尋找更多的信息。

回答

相關問題