Bonjour !
J'ai un problème ennuyeux avec la sérialisation : elle fonctionne nickel pour tout ce qui est petits fichiers, mais là je voudrais sérialiser une liste de clients, et il y en a 11000. Ce qui me fait une ArrayList de 11000 object "Client".
Le truc c'est que ca fonctionne, le fichier final ne fait qu'a peine plus de 1 Mo, mais la sérialization met plus de 2 ou 3 minutes à se faire (100% de CPU...) !!! (alors que la déserialization est elle quasi-immédiate...)
Voilà deux méthodes que j'ai essayés pour serializer, avec le meme résultat :
1:
public static void Serialize(string FilePath, object ObjectToSerialize) { FileStream fs = new FileStream(FilePath, FileMode.Create);
BinaryFormatter formatter = new BinaryFormatter(); try { formatter.Serialize(fs, ObjectToSerialize); } catch (SerializationException e) { Error.show("Utils : Serialize",371,"Failed to serialize. Reason: " + e.Message); throw; } finally { fs.Close(); }
} |
Seconde méthode :public static void Serialize(string FilePath, object ObjectToSerialize)
{
try
{
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream(FilePath, FileMode.Create, FileAccess.Write, FileShare.None);
formatter.Serialize(stream, ObjectToSerialize);
stream.Close();
}
catch (Exception ex)
{
Error.show("Utils : Serialize",205,ex.ToString());
}
}
Merci d'avance si vous pouvez m'aider :)