1
我試圖序列化UDP數據包流的一些數據,我從序列化中獲得了巨大的開銷。如果我使用1k字節數組對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()
感謝您的快速回復。也許我應該看看dot net的proto緩衝區。 – gradbot 2009-12-10 23:34:18