• Jueves 14 de Noviembre de 2024, 09:17

Autor Tema:  Optimizar Codigo  (Leído 1371 veces)

beafasa

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Optimizar Codigo
« en: Jueves 5 de Agosto de 2004, 12:23 »
0
Hola:

Tengo que pasar los datos de un fichero a una tabla. Las lineas del fichero siguen el mismo formato que es: c1|c2|c3|c4 separadas por la |. Entonces estoy usando la clase StringTokenizer para poder obtener cada parte y luego ya meterlo en la tabla. El problema es que necesito que vaya mas rapido, por que le fichero se espera que tenga unos 2 millones de lineas y me tardaria unas 33 horas segun lo tengo. Y se supone que tiene que poder ejecutarse por la noche.

Alguien sabe como podria optimizarlo? He usado el metodo executeBatch y ha mejorado el tiempo pero necesito mas. Se podria utilizar algo en vez de StringTokenizer que me hiciera que fuera mas rapido?

Muchas gracias

chuidiang

  • Miembro MUY activo
  • ***
  • Mensajes: 123
  • Nacionalidad: es
    • Ver Perfil
    • http://www.chuidiang.com
Re: Optimizar Codigo
« Respuesta #1 en: Jueves 12 de Agosto de 2004, 17:36 »
0
Habría que ver cómo tienes el código y todo eso, pero te comento varias ideas.

- Para leer el fichero utiliza algo que use BufferedInputStream. Si lees un fichero sin Buffered, cada vez que lees se realiza una lectura real en disco. Si utilizas el Buffered, se lee de golpe un cacho grande de fichero. El resultado es una lectura más rápida.

- Si tu separador siempre es |, posiblemente sea más rápido si los buscas tú con un bucle que usar el StringTokenizer.

- Otro consejo. Los StringBuffer son más rápidos en general que los String.

De todas formas, yo creo que lo más determinante en tiempo, si no lo estás usando ya, es el BufferedInputStream o si no, leer tú varios kBytes de fichero de golpe (de una sola lectura) y luego ir analizándolos.

Se bueno.

beafasa

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Optimizar Codigo
« Respuesta #2 en: Martes 21 de Septiembre de 2004, 07:11 »
0
Muchas gracias por tu ayuda