Hola a todos,
Tengo un servlet que tiene un array y lo que hago es ordenarlo. Tengo una plataforma de desarrollo y otra de producción. Lo estoy problando en 2 maquinas diferentes. En una de las máquinas (que tiene menos procesador que el otro) tarda 2 segundos mientras que en el otro (que es tiene más memoria RAM y más procesador) tarda 23 segundos.
Los array tienen 7000 elementos. El código es el siguiente:
///////////////////////////////////////////////////////////////////////////*///////////////////////////////
java.util.Date datTiempoInicio, datTiempoFin;
java.util.Calendar calTiempoInicio = Calendar.getInstance();
java.util.Calendar calTiempoFin = Calendar.getInstance();
long intTiempoUtilizado;
datTiempoInicio = new java.util.Date();
calTiempoInicio.setTime(datTiempoInicio );
if (astrName.length > 1) {
//ordenacion de los arrays: astrName[intFilaArray]
int i, pasadas;
String strTemp;
double dblIntensityTemp;
double dblBackgroundTemp;
int intComparacion;
for (pasadas = 1; pasadas < astrName.length; pasadas++) {
for (i = 0; i<astrName.length - 1; i++) {
intComparacion = astrName[i].compareTo(astrName[i+1]);
if (intComparacion > 0) {
strTemp = astrName[i];
astrName[i] = astrName[i + 1];
astrName[i + 1] = strTemp;
dblIntensityTemp = adblIntensity1[i];
adblIntensity1[i] = adblIntensity1[i + 1];
adblIntensity1[i + 1] = dblIntensityTemp;
dblIntensityTemp = adblIntensity2[i];
adblIntensity2[i] = adblIntensity2[i + 1];
adblIntensity2[i + 1] = dblIntensityTemp;
dblBackgroundTemp = adblBackground1[i];
adblBackground1[i] = adblBackground1[i + 1];
adblBackground1[i + 1] = dblBackgroundTemp;
dblBackgroundTemp = adblBackground2[i];
adblBackground2[i] = adblBackground2[i + 1];
adblBackground2[i + 1] = dblBackgroundTemp;
} // end if (intComparacion > 0)
} //end for i
} //end for pasadas
} // end if (astrName.length > 1)
datTiempoFin = new java.util.Date();
calTiempoFin.setTime(datTiempoFin );
intTiempoUtilizado = Math.abs( (calTiempoFin.getTimeInMillis() -
calTiempoInicio.getTimeInMillis()) / (1000) );
System.out.println("(ProcessFile) Time = " + intTiempoUtilizado );
///////////////////////////////////////////////////////////////////////////*/////////////////////
¿Puede ser algo de la configuración que tengo diferente?
¿puede ser algo del metodo compareTo?
Necesito ayuda, please.
Gracias.