ápida serialização / desserialização de estruturas

Tenho um grande número de dados geográficos representados em uma estrutura de objeto simples, consistindo apenas de estruturas. Todos os meus campos são do tipo valor.

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;
}

Os dados são agrupados em pequenas porções deParent[] -s. Cada matriz contém alguns milhares de instâncias pai. Eu tenho muitos dados para manter tudo na memória, então preciso trocar esses pedaços para o disco e para trás. (Um arquivo resultaria em aproximadamente 2-300 KB).

Qual seria a maneira mais eficiente de serializar / desserializar oParent[] para umbyte[] para dumpint em disco e lendo de volta? Em relação à velocidade, Estou particularmente interessado em desserialização rápida, a velocidade de gravação não é tão crític

Would simpleBinarySerializer bom o bastante? Ou devo invadir comStructLayout (ver resposta aceita)? Não tenho certeza se isso funcionaria com o campo array deParent.children.

UPDATE: Resposta a comentários - Sim, os objetos são imutáveis (código atualizado) e, de fato, ochildren campo não é do tipo valor. 300 KB não parecem muito, mas eu tenho zilhões de arquivos assim, então a velocidade import

questionAnswers(4)

yourAnswerToTheQuestion