Bonjour à tous !
Je suis en train de réaliser une application qui analyse des listes de discussion. La Classe Liste possède donc une méthode qui extrait des messages de fichiers EML. J'ai essayé cette méthode de 2 façons : une façon (1) tout objet et une façon (2) avec base de données. Voici le détail pour l'extraction de 21100 fichiers EML :
(1) : La classe Liste possède un ArrayList<Message> qui va stocker ses messages. J'ouvre un fichier, je le lis, j'extrais les informations du fichier dans des types primitifs, et j'insère ces données dans mon ArrayList<Message> tabMessages en faisant :
Temps d’exécution = 2:30
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 tabMessages.add(new Message(idDepart, nomFichierTraite, locuteur, mailLocuteur, profil, groupPost, sujet, sujetTronque, dDateParseUS, numero, identifiant, inReplyTo));
(2) : j'ouvre un fichier, je le lis, j'extrais les informations du fichier dans des types primitifs, String principalement, et j'insère ces données dans une table de ma base de données avec un simple INSERT INTO ...
Temps d'exécution = 1:15
D'où mes questions :
- je m'y prends mal pour créer mon nouvel objet Message dans le (1) ?
- j'ai remarqué que pour 50000 messages, la (2) commence à faire des débordements mémoire, mais pas la (1) donc le "tout objet" serait optimisé pour les objets nombreux ?
- je n'ai pas absolument besoin de base de données, et la première version de mon appli utilisait une base de données : je voudrais donc m'en débarrasser mais maintenant j'hésite !!
Merci d'avance
didier mc
Partager