Bien le bonjour,
voilà, j'ai une petite question : j'ai une classe qui serte à charger en mémoire un fichier Shape ESRI (je suis sur du développement d'une application de controle de trafic dont la partie carto est géoréférencée, mais bon tout cela n'est pas le problème) le truc, c'est que cette classe en question à été codée à l'époque de java 1.3 (voir 1.2) et donc elle n'a pas évoluée depuis, donc bien que la recompilation en java 1.5 puis 1.6 à fait un énorme bien (on passe de 7min de chargement à 2min) je pense qu'il doit y avoir un moyen d'optimiser le code :
Premièrement, le fichier est lu avec çà
Existe-t-il aujourd'hui une api plus rapide (en peut comme passer par un StringBuffer) ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part _currentStream = new DataInputStream(new FileInputStream(file));
Autre chose :
dans cette classe il y a beaucoup de truc dans ce genre :
Ou même
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 private final double readDouble() throws IOException { long l = 0; long current; int i; int shift = 0; for(i = 0; i < 8; i++) { current = _currentStream.readUnsignedByte(); l += (current << shift); shift += 8; } return Double.longBitsToDouble(l); }et
Code : Sélectionner tout - Visualiser dans une fenêtre à part _currentStream.skipBytes(4);J'espère qu'il est possible de faire en sorte que tout ce code puisse être modifié par une version plus vélosse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part _currentStream.readInt();
Merci d'avance.
Partager