Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Performance de código

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Intermedio
Mensaje Mar Jun 05, 2007 12:27 pm
xperlero
Perlero Nuevo
Perlero Nuevo
Registrado: 05 Jun 2007
Mensajes: 4
Performance de código Responder citando

Estoy haciendo reingeniería sobre muchos scripts Perl en un programa bancario y quieren que vaya más rápido. Me gustaría que me dieran varios consejos de cómo mejorar significativamente el código Perl.
Mensaje Mar Jun 05, 2007 2:31 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4226
Ubicación: Valladolid, España
Responder citando

  • Cambiar el ordenador por uno más rápido Smile
  • Cambiar la red por una más rápida Smile
  • Usar las opciones de profiling de Perl para saber cuáles son las partes más lentas. Se corre con perl -d:DProf programa.pl. Más información en Google buscando por las palabras profiling y Perl.
  • Depende un poco de si los programas duran mucho tiempo o no. En el segundo caso hay que atacar la parte de carga de los módulos, mientras que en el primer caso, hay que hacer profiling y probar diversas opciones.
  • Hay algunos trucos para aumentar la velocidad de un programa: * Cargar sólo las funciones de los módulos que realmente necesitemos y no importar todo su espacio de nombres. * Usar el método de Autoload para que las funciones estén disponibles a medida de que se necesiten (hay módulos que ayudan a esto).
  • También depende del tipo de dato que se maneje. No es lo mismo tratar strings, que bases de datos que ficheros en binario directamente.
  • Y el tamaño. El problema puede decir que hay que procesar un fichero de texto, pero al descubrir que ese fichero ocupa 300Mb, su tratamiento puede ser muy distinta de lo pensado al principio.
  • A veces, cambiar un módulo por otro da el resultado buscado. Por ejemplo, cambiar el sistema de relleno de hojas de cálculo Excel con Win32::OLE por Spreadsheet::WriteExcel permite que el programa sea trasladado desde un Windows a un Linux, con lo que las prestaciones aumentan en varias unidades de potencia.
  • El sistema operativo influye mucho, sobre todo cuando Perl necesita reservar muchos elementos en memoria de pequeño tamaño, como cuando se manejan hashes o arrays con referencias a otras estructuras. Si se agota la memoria, el sistema necesitará recuperar esas zonas, pero según sea ese sistema operativo se negará a hacerlo o no.
  • Ampliar la memoria del ordenador puede ser un plus. Hay que ver la evolución de la memoria consumida a lo largo de la ejecución del programa. Si la memoria se agota, el sistema operativo empieza a usar la memoria de intercambio, con lo que se degrada mucho su rendimiento final.
  • ...


Ultima edición por explorer el Mie Jun 06, 2007 3:44 am, editado 1 vez
Mensaje Mie Jun 06, 2007 2:56 am
xperlero
Perlero Nuevo
Perlero Nuevo
Registrado: 05 Jun 2007
Mensajes: 4
Performance de código Responder citando

Gracias Explorer, me das buenas ideas en especial las de profiling. voy a más estudiar este tema para aplicarlo.
Publicar nuevo tema   Responder al tema    Foros de discusión -> Intermedio Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group