Java lenteur ouverture fichier Excel
Fermé
g25452
Messages postés
66
Date d'inscription
vendredi 16 mai 2008
Statut
Membre
Dernière intervention
1 juin 2010
-
1 août 2008 à 16:15
g25452 Messages postés 66 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 1 juin 2010 - 4 août 2008 à 13:28
g25452 Messages postés 66 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 1 juin 2010 - 4 août 2008 à 13:28
A voir également:
- Java lenteur ouverture fichier Excel
- Fichier rar - Guide
- Liste déroulante excel - Guide
- Fichier host - Guide
- Fichier iso - Guide
- Waptrick java football - Télécharger - Jeux vidéo
3 réponses
kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
1 août 2008 à 16:20
1 août 2008 à 16:20
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.
g25452
Messages postés
66
Date d'inscription
vendredi 16 mai 2008
Statut
Membre
Dernière intervention
1 juin 2010
4 août 2008 à 13:13
4 août 2008 à 13:13
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));
g25452
Messages postés
66
Date d'inscription
vendredi 16 mai 2008
Statut
Membre
Dernière intervention
1 juin 2010
4 août 2008 à 13:28
4 août 2008 à 13:28
j'ai essayé System.gc() et ca change rien
merci quand meme
merci quand meme
1 août 2008 à 16:34
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 ?