Java lenteur ouverture fichier Excel
g25452
Messages postés
66
Date d'inscription
Statut
Membre
Dernière intervention
-
g25452 Messages postés 66 Date d'inscription Statut Membre Dernière intervention -
g25452 Messages postés 66 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis en train de faire une application web en java avec eclipse
Dans cette application je dois ouvrir beaucoup de fichier excel.
Pour lire 70 fichier ca me prend 1 min 50.
Voici mon code :
private void traiterFichierExcel(String filename) {
=> Workbook workbook = Workbook.getWorkbook(new File(filename));
...
C'est cette ligne qui fait que ca ralentit tres fortement mon programme.
Est-ce quelqu'un connais une solution pour aller plus vite?
Merci
Je suis en train de faire une application web en java avec eclipse
Dans cette application je dois ouvrir beaucoup de fichier excel.
Pour lire 70 fichier ca me prend 1 min 50.
Voici mon code :
private void traiterFichierExcel(String filename) {
=> Workbook workbook = Workbook.getWorkbook(new File(filename));
...
C'est cette ligne qui fait que ca ralentit tres fortement mon programme.
Est-ce quelqu'un connais une solution pour aller plus vite?
Merci
A voir également:
- Java lenteur ouverture fichier Excel
- Lenteur pc - Guide
- Fichier bin - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Fichier epub - Guide
3 réponses
Bonjour,
WorkBook étant un package officiel (je connais pas mais d'après une courte recherche effectuée c'est ce qu'il me semble être), je pencherai plus pour un problème d'algorithme dans ton programme plutôt qu'un problème de cette classe.
Tu parle d'ouvrir 70 fichiers, comment les ouvres-tu ? Tous ensemble, dans une boucle, etc ?
Peux-tu nous donner tout le code en rapport avec l'ouverture de ces fichiers excels ?
Sinon, l'explication possible est relativement simple : Si tu ouvre tous ces fichiers en même temps, au bout d'un moment il est normal que niveau mémoire Java pèche un peu ce qui fais ralentir ton application.
WorkBook étant un package officiel (je connais pas mais d'après une courte recherche effectuée c'est ce qu'il me semble être), je pencherai plus pour un problème d'algorithme dans ton programme plutôt qu'un problème de cette classe.
Tu parle d'ouvrir 70 fichiers, comment les ouvres-tu ? Tous ensemble, dans une boucle, etc ?
Peux-tu nous donner tout le code en rapport avec l'ouverture de ces fichiers excels ?
Sinon, l'explication possible est relativement simple : Si tu ouvre tous ces fichiers en même temps, au bout d'un moment il est normal que niveau mémoire Java pèche un peu ce qui fais ralentir ton application.
Voici mon code plus complet, je fais un for pour traiter tous les dossiers de mon repertoire :
String chemin = "//One/Services/Excel/";
File dir = new File(chemin);
String[] input = dir.list();
for (int i=0; i<input.length; i++) {
String filename = input[i];
traiterFichierExcel(chemin + filename);
}
puis
private void traiterFichierExcel(String filename) {
=> Workbook workbook = Workbook.getWorkbook(new File(filename));
String chemin = "//One/Services/Excel/";
File dir = new File(chemin);
String[] input = dir.list();
for (int i=0; i<input.length; i++) {
String filename = input[i];
traiterFichierExcel(chemin + filename);
}
puis
private void traiterFichierExcel(String filename) {
=> Workbook workbook = Workbook.getWorkbook(new File(filename));
En effet, en java, le garbage collector est appelé un peu au petit bonheur la chance. S'il ne vient pas supprimer les objets que tu as créé pour loader tes fichiers, ceux ci seront toujours en mémoire et prendront une place inutile, ce qui a plus ou moins long terme - selon le nombre de données que tu load dans un temps imparti - peu provoqué un manque de mémoire et un ralentissement du programme, normal.
Tu peux toujours mettre un : System.gc(); au début de ta fonction pour "forcer" la GC à venir nettoyer mais je doute que ce soit efficace.
Aussi : as tu bien fermé les fichiers que tu as ouvert de cette façon ?