Piszę aplikację C#, która musi odczytać około 130 000 par (String, Int32) podczas uruchamiania do słownika. Pary są przechowywane w pliku .txt, przez co są łatwo modyfikowane przez każdego, co jest niebezpieczne w danym kontekście. Chciałbym zapytać, czy istnieje sposób na zapisanie tego słownika, aby informacja mogła być bezpiecznie przechowywana, bez utraty wydajności podczas uruchamiania. Próbowałem używać BinaryFormatter
, ale problem polega na tym, że podczas początkowego programu trwa od 125ms do 250ms przy uruchomieniu, aby odczytać informacje z txt i zbudować słownik, deserializacja wynikowych plików binarnych zajmuje do 2s, co nie jest zbyt wiele przez sam w sobie, ale w porównaniu do pierwotnej wydajności jest 8-16-krotny spadek prędkości.Zapisywanie słownika <String, Int32> w języku C# - Serialization?
Uwaga: Szyfrowanie jest ważne, ale najważniejszy powinien być sposób, aby zapisać i odczytać z dysku słownika - ewentualnie z binarnego pliku - bez konieczności korzystania Convert.ToInt32 na każdej linii, tym samym zwiększając wydajność .
8-16x wolniej porównywane tp co, czego aktualnie używasz? Byłbym zaskoczony, gdyby BinaryFormatter nie był najszybszy. – Aliostad
Czytam ciągi z pliku .txt, używając metody 'ReadLine() 'StreamReadera i używając' Convert.ToInt32' dla liczb całkowitych. Każda z tych dwóch operacji jest wykonywana około 131 000 razy podczas uruchamiania. – Miguel