Bonjour,
Je travaille sous eclipse 3.1 et j'effectue un traitement java qui consiste à lire des fichiers CSV. Il y en aune vingtaine, dont certains qui pèsent 30Mo.
Au début du traitement, j'importe ces fichiers de façon à pouvoir les manipuler ensuite. A l'exécution, rien que cet import, avant même le moindre traitement dure plus de trois heures !!!
Je ne crois pas que ce soit normal, voici le code que j'utilise pour importer ces fichiers :
Avez vous des idées pour rendre ce code plus performant ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 public ImportCsv(String path) throws FileNotFoundException { m_fileContent = new Vector(); FileReader fileReader = new FileReader(path); readFromFile(fileReader); fitVectorsToSize(); } public ImportCsv(Reader reader) { m_fileContent = new Vector(); readFromFile(reader); fitVectorsToSize(); } private void fitVectorsToSize() { m_fileContent.setSize(getRowsCount()); int fileSize = getRowsCount(); int colCount = getColsCount(); for (int i = 0; i < fileSize; i++) { Vector aRow = (Vector)m_fileContent.get(i); if (aRow == null) { m_fileContent.set(i, new Vector()); aRow = (Vector)m_fileContent.get(i); } aRow.setSize(colCount); } } private void readFromFile(Reader reader) { BufferedReader buffReader = new BufferedReader(reader); if (buffReader != null) { try { String tempLine; tempLine = buffReader.readLine(); while (tempLine != null) { readFromLine(tempLine); tempLine = buffReader.readLine(); } } catch (IOException e) { System.err.println("Error reading CSV file: " + e.toString()); } finally { try { buffReader.close(); } catch (IOException e) { System.err.println( "Erreur closing CSV file: " + e.toString() ); } } } System.runFinalization(); System.gc(); }
Cette durée d'éxécution est elle normale ??!
Merci.
[Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java
Partager