J'essaie de sérialiser certaines données pour un flux de paquets UDP et je reçois un énorme surcoût de la sérialisation. Si je code une FileData avec un tableau de 1k Byte, je récupère 2312 octets. Comment pourrais-je réduire cet overhead sans coder et décoder tout moi-même?F # Sérialiser Union discriminée pourquoi tant d'octets?
[<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()
Merci pour la réponse rapide. Peut-être que je devrais regarder dans les tampons proto pour dot net. – gradbot