UDP 패킷 스트림에 대해 일부 데이터를 직렬화하려고하는데 직렬화에서 많은 오버 헤드가 발생합니다. 1k Byte 배열로 FileData를 인코딩하면 2312 바이트가 반환됩니다. 내가 직접 인코딩하고 디코딩하지 않고도이 오버 헤드를 줄일 수 있을까요? "그 자신을"있는 유일한 옵션이 될 수 있도록F # 차별화 된 유니온을 직렬화해야하는 이유는 무엇입니까?
[<Serializable>]
type Response =
| FileSize of String * int64
| FileData of int64 * byte[]
with
static member Decode(packet : byte[]) =
use ms = new MemoryStream(packet)
let bf = new BinaryFormatter()
bf.Deserialize(ms)
|> unbox<Response>
member this.Encode() =
use ms = new MemoryStream()
let bf = new BinaryFormatter()
bf.Serialize(ms, this)
ms.GetBuffer()
빠른 답장을 보내 주셔서 감사합니다. 어쩌면 내가 닷넷에 대한 프로토 버퍼를 조사해야합니다. – gradbot