Быстрая сериализация / десериализация структур

У меня есть огромное количество географических данных, представленных в простой структуре объекта, состоящей только из структур. Все мои поля имеют тип значения.

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. Каждый массив содержит несколько тысяч экземпляров Parent. У меня слишком много данных, чтобы хранить все в памяти, поэтому мне нужно поменять их на диск туда и обратно. (Один файл получит около 2-300 КБ).

Каков наиболее эффективный способ сериализации / десериализацииParent[] кbyte[] для дампа на диск и чтения обратно? Что касается скорости,Я особенно заинтересован в быстрой десериализацииСкорость записи не так критична.

Было бы простоBinarySerializer достаточно хорошо? Или я должен взломать сStructLayout (см. принятый ответ)? Я не уверен, что это будет работать с полем массиваParent.children.

ОБНОВЛЕНИЕ: Ответ на комментарии - Да, объекты неизменны (код обновлен) и действительноchildren поле не является типом значения. 300KB звучит немного, но у меня есть миллионы таких файлов, поэтому скорость имеет значение.

Ответы на вопрос(2)

Ваш ответ на вопрос