我對僅由結構構成的簡單對象結構表示的地理數據有着巨大的興趣。我所有的領域都是有價值的。結構的快速序列化/反序列化
public struct Child
{
readonly float X;
readonly float Y;
readonly int myField;
}
public struct Parent
{
readonly int id;
readonly int field1;
readonly int field2;
readonly Child[] children;
}
的數據被分塊很好地最多的Parent[]
-s一小部分。每個數組包含幾千個父實例。我有太多的數據來保存所有的內存,所以我需要來回交換這些塊到磁盤。 (一個文件將導致約2-300KB)。
將dumpint序列化或反序列化爲爲byte[]
以將dumpint轉儲到磁盤並讀回的最有效方式是什麼?關於速度,我對快速反序列化特別感興趣,寫入速度並不那麼關鍵。
簡單BinarySerializer
夠好嗎? 或者我應該用StructLayout
(see accepted answer)破解?我不確定這是否會與Parent.children
的數組字段一起工作。
更新:對評論的迴應 - 是的,對象是不可變的(代碼更新),而且children
字段不是值類型。 300KB聽起來不怎麼樣,但我有很多這樣的文件,所以速度很重要。
_我的所有字段的值都是type_ - 「children」字段不是值類型。 – 2012-03-30 14:46:04
300KB爲小數量,這個數量在0.1s無反轉優化中被反序列化/序列化 – 2012-03-30 14:47:21
是否所有數據都是隻讀的? – usr 2012-03-30 14:52:13