2012-03-08 3 views
0

소켓을 통해 서버에서 클라이언트로 ByteString을 보내기 위해 사용할 수있는 버퍼를 메모리에 만들려고합니다. 나는 그것을 변경할 수 있기를 바란다. 그래서 그것을 재사용 할 수있다.Haskell에서 ByteString을 보관할 버퍼를 만드는 올바른 방법은 무엇입니까

이유는 내가 게으른 ByteString 보내기 때문에 모든 서버 응답에 대해 많은 개체가 만들어지고 과도한 가비지 수집 (GC에서 40 % 소요)으로 인해 서버가 느려지 기 때문입니다.

나는 IOUArray을 조사하고 있었지만, Int, Word32 등과 같은 경우에만 작동하지만 ByteString에는 작동하지 않습니다.

내가 찾고있는 다른 옵션은 Array Int (IORef ByteString)을 만드는 것입니다. 각 ByteString은 같은 크기 여야하지만, 이것이 올바른 방법인지 확실하지 않습니다.

많은 문서를 온라인에서 살펴 보았지만 IOArray 또는 IORef을 주소 지정했지만 결코 바이트 문자열의 배열을 지정하지 않았습니다.

나는 이것에 대해 어떻게 가야하는지, 또는 더 많은 정보를 구할 수있는 방법에 대해 많은 조언을드립니다.

답변

관련 문제