Estoy escribiendo una aplicación C# que necesita leer sobre 130,000 (String, Int32) pares en el inicio de un Diccionario. Los pares se almacenan en un archivo .txt y, por lo tanto, son fácilmente modificables por cualquier persona, lo cual es algo peligroso en el contexto. Me gustaría preguntar si hay una manera de guardar este diccionario para que la información se pueda almacenar de forma razonablemente segura, sin perder rendimiento en el inicio. He intentado usar BinaryFormatter
, pero el problema es que mientras el programa original tarda entre 125ms y 250ms al inicio para leer la información del txt y construir el diccionario, deserializar los archivos binarios resultantes toma hasta 2s, lo que no es demasiado por en sí, pero en comparación con el rendimiento original es una disminución de 8-16x en la velocidad.Guardar un diccionario <String, Int32> en C# - ¿Serialización?
Nota: cifrado es importante, pero el más importante debe ser una manera de ahorrar y leer el diccionario desde el disco - posiblemente de un archivo binario - sin tener que utilizar Convert.ToInt32 en cada línea, lo que mejora el rendimiento .
8-16 veces más lento comparado tp qué, ¿qué estás usando actualmente? Me sorprendería que BinaryFormatter no sea el más rápido. – Aliostad
Estoy leyendo cadenas del archivo .txt usando el método 'ReadLine() 'de StreamReader, y usando' Convert.ToInt32' para los enteros. Cada una de estas dos operaciones se realizan unas 131,000 veces al inicio. – Miguel