Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Networking 在Haskell中创建缓冲区以保存ByTestRing的正确方法是什么_Networking_Haskell_Bytearray - Fatal编程技术网

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
从服务器发送到客户端。我希望它是可变的,这样我就可以重用它

我之所以要这样做,是因为发送lazy
ByteString
s会直接导致为每个服务器响应创建大量对象,并由于垃圾收集过多(40%用于GC)而降低服务器速度

我正在研究
IOUArray
,但这只适用于
Int
Word32
等,而不适用于
ByteString

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

我在网上查阅了很多文档,但它们要么是地址
IOArray
要么是
IORef
,但从来没有一个bytestring数组

我非常感谢您的指点,告诉我如何做,或者在哪里查找更多信息。

也许您会喜欢这个软件包。

也许您会喜欢这个软件包