Serialización / deserialización rápida de estructuras

Tengo una gran cantidad de datos geográficos representados en una estructura de objeto simple que consta solo de estructuras. Todos mis campos son de tipo de 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;
}

Los datos se dividen en pequeñas porciones deParent[] -s. Cada matriz contiene unos pocos miles de instancias principales. Tengo demasiados datos para guardarlos en la memoria, por lo que necesito intercambiar estos fragmentos al disco de un lado a otro. (Un archivo generaría aproximadamente 2-300 KB).

Cuál sería la forma más eficiente de serializar / deserializar laParent[] a unbyte[] para dumpint al disco y leer de nuevo? En cuanto a la velocidad, Estoy particularmente interesado en la deserialización rápida, la velocidad de escritura no es tan crítica.

Sería simpleBinarySerializer ¿suficientemente bueno? ¿O debería hackear conStructLayout (ver respuesta aceptada)? No estoy seguro de si eso funcionaría con el campo de matriz deParent.children.

UPDATE: Respuesta a los comentarios: Sí, los objetos son inmutables (código actualizado) y, de hecho, lachildrenl campo @ no es un tipo de valor. 300 KB no suena mucho, pero tengo millones de archivos así, así que la velocidad sí importa.

Respuestas a la pregunta(4)

Su respuesta a la pregunta