Tengo una clase que necesito para la serialización binaria. La clase contiene un campo de la siguiente manera:Optimización de la serialización binaria para matrices genéricas multidimensionales
private T[,] m_data;
Estas matrices multidimensionales pueden ser bastante grandes (cientos de miles de elementos) y de cualquier tipo primitivo. Cuando probé la serialización .net estándar en un objeto, el archivo escrito en el disco era grande y creo que .net está almacenando una gran cantidad de datos repetidos sobre los tipos de elementos y posiblemente no tan eficientemente como podría hacerse.
He buscado serializadores personalizados pero no he visto ninguno que se ocupe de matrices genéricas multidimensionales. También experimenté con la compresión .NET incorporada en una matriz de bytes de la secuencia de memoria después de la serialización con cierto éxito, pero no tan rápido/comprimido como esperaba.
Mi pregunta es, ¿debería intentar y escribir un serializador personalizado para serializar de manera óptima esta matriz para el tipo apropiado (esto parece un poco desalentador), o debería usar la serialización .net estándar y agregar compresión?
Cualquier consejo sobre el mejor enfoque sería muy apreciado, o enlaces a recursos que muestran cómo abordar la serialización de una matriz genérica multidimensional - como se menciona existing examples He encontrado que no son compatibles con tales estructuras.
Hay 2 problemas con esto; el primero es que el OP preguntó sobre rectangular (no dentada). Lo más importante es que su compresión se ve afectada por los datos uniformes. Añadiré un deporte al azar para mostrar lo que quiero decir ... –
Por supuesto, no puedes comprimir datos aleatorios. Pero muchos datos significativos pueden comprimirse razonablemente. Entonces, en mi opinión, la compresión puede ser atractiva. –