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 çà

Code : Sélectionner tout - Visualiser dans une fenêtre à part
_currentStream	= new DataInputStream(new FileInputStream(file));
Existe-t-il aujourd'hui une api plus rapide (en peut comme passer par un StringBuffer) ??

Autre chose :

dans cette classe il y a beaucoup de truc dans ce genre :

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);
    }
Ou même
Code : Sélectionner tout - Visualiser dans une fenêtre à part
_currentStream.skipBytes(4);
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
_currentStream.readInt();
J'espère qu'il est possible de faire en sorte que tout ce code puisse être modifié par une version plus vélosse.


Merci d'avance.