Networking 在Haskell中创建缓冲区以保存ByTestRing的正确方法是什么
我试图在内存中创建一个缓冲区,我可以使用它通过套接字将Networking 在Haskell中创建缓冲区以保存ByTestRing的正确方法是什么,networking,haskell,bytearray,Networking,Haskell,Bytearray,我试图在内存中创建一个缓冲区,我可以使用它通过套接字将ByteString从服务器发送到客户端。我希望它是可变的,这样我就可以重用它 我之所以要这样做,是因为发送lazyByteStrings会直接导致为每个服务器响应创建大量对象,并由于垃圾收集过多(40%用于GC)而降低服务器速度 我正在研究IOUArray,但这只适用于Int、Word32等,而不适用于ByteString 我正在研究的另一个选项是创建一个数组Int(IORef ByteString)——每个ByteString必须具有相同
ByteString
从服务器发送到客户端。我希望它是可变的,这样我就可以重用它
我之所以要这样做,是因为发送lazyByteString
s会直接导致为每个服务器响应创建大量对象,并由于垃圾收集过多(40%用于GC)而降低服务器速度
我正在研究IOUArray
,但这只适用于Int
、Word32
等,而不适用于ByteString
我正在研究的另一个选项是创建一个数组Int(IORef ByteString)
——每个ByteString必须具有相同的大小,但我不确定这是否正确
我在网上查阅了很多文档,但它们要么是地址IOArray
要么是IORef
,但从来没有一个bytestring数组
我非常感谢您的指点,告诉我如何做,或者在哪里查找更多信息。也许您会喜欢这个软件包。也许您会喜欢这个软件包