J'écris une application C# qui doit lire environ 130 000 paires (String, Int32) au démarrage d'un dictionnaire. Les paires sont stockées dans un fichier .txt, et sont donc facilement modifiables par n'importe qui, ce qui est dangereux dans le contexte. Je voudrais demander s'il existe un moyen de sauvegarder ce dictionnaire afin que les informations puissent être stockées raisonnablement en toute sécurité, sans perdre de performance au démarrage. J'ai essayé d'utiliser BinaryFormatter
, mais le problème est que pendant que le programme original prend entre 125ms et 250ms au démarrage pour lire les informations du txt et construire le dictionnaire, désérialiser les fichiers binaires résultants prend jusqu'à 2s, ce qui n'est pas trop par lui-même, mais par rapport à la performance d'origine est une diminution de 8-16x de la vitesse.Enregistrement d'un dictionnaire <String, Int32> en C# - Sérialisation?
Note: Le chiffrement est important, mais le plus important devrait être un moyen d'enregistrer et de lire le dictionnaire à partir du disque - peut-être à partir d'un fichier binaire - sans avoir à utiliser Convert.ToInt32 sur chaque ligne, améliorant ainsi les performances .
8-16x plus lent comparé tp quoi, qu'est-ce que vous utilisez actuellement? Je serais surpris si BinaryFormatter n'est pas le plus rapide. – Aliostad
Je lis les chaînes du fichier .txt en utilisant la méthode ReadLine() de StreamReader et en utilisant Convert.ToInt32 pour les entiers. Chacune de ces deux opérations est effectuée environ 131 000 fois au démarrage. – Miguel