Tuve un problema muy similar: guardarlo en un archivo. Pero lo siguiente también se puede usar en una red, ya que en realidad fue diseñado para la comunicación remota.
La solución es utilizar la biblioteca de Simon Hewitt - ver Optimizing Serialization in .NET - part 2.
Part 1 de los estados de artículos (la negrita es el énfasis es mío): " ... Si alguna vez has usado remota de .NET para grandes cantidades de datos , se ha encontrado que hay problemas con escalabilidad. para pequeñas cantidades de datos, funciona bien suficiente, pero grandes cantidades tomar una gran cantidad de CPU y memoria, generan cantidades masivas de datos para la transmisión, y puede fallar con excepciones de memoria insuficiente. también hay una gran problema con el tiempo necesario para realizar realmente la serialización - grandes cantidades de datos pueden hacer que sea inviable para usar en aplicaciones ...."
me dieron un resultado similar para mi aplicación en particular, el ahorro de 40 veces más rápido y 20 veces más rápido de carga (de minutos a segundos). El tamaño de los datos serializados era también reduce mucho. No recuerdo exactamente, pero era al menos 2-3 veces
es bastante fácil para empezar sin embargo hay una Gotcha:.. sólo utilizan la serialización de .NET para el más alto nivel de estructura de datos (para obtener la serialización/deserialización iniciado) y luego llamar a las funciones de serialización/deserialización directamente para la campos en el nivel más alto estructura de datos. De lo contrario, no habrá ninguna aceleración ... Por ejemplo, si la biblioteca no admite una estructura de datos particular (digamos Generic.List
), entonces se utilizará la serialización .NET y este es un no-no. En su lugar, serializa la lista en el código del cliente (o similar). Para un ejemplo , consulte "Esta es nuestra propia codificación". en la misma función que se enumeran a continuación.
Para referencia: code from my application - vea cerca "Nota: este es el único lugar donde usamos el .NET incorporado.".
D'oh! Llegó una hora tarde ;-p –