Optimizar un código de
programación persigue dos objetivos:
Ø
Mejorar la
legibilidad del código para reducir el tiempo que toma actualizarlo.
Ø
Reducir el
tiempo de respuesta de la ejecución del programa
Cinco
Tips para Reducir el tiempo de Respuesta Mejorando el Código de programación en
RPG
1.-Uso de estructura de
datos
En
programación RPG II y RPG III, podemos ver, en general, una gran cantidad de
MOVE, MOVEL para poder armar claves de búsqueda, grabar información en un
archivo, realizar comparaciones de campos de longitud desigual, etc.
Declarar
una estructura de datos con los campos o variables y que tenga definidos los subcampos con sus
diversas longitudes, nos permite hacer un solo MOVE y rellenar automáticamente
todas las variables auxiliares que hemos utilizado durante el programa y que
hemos repetidamente actualizado mediante MOVE y MOVEL.
Esto
reduce sensiblemente el tiempo de respuesta del programa
2.-MOVE Versus Z-ADD
Consume menos tiempo de
ejecución el MOVE que el Z-ADD
La instrucción Z-ADD
implica internamente la realización de dos instrucciones: mover cero a la
variable y luego sumarle un valor.
El MOVE directamente coloca el valor.
3.-SELECT Versus If Anidados
Algunas
instalaciones tienen una verdadera fascinación por los IF anidados. Parece que
mientras mas anidados y mas IF sean más eficiente es el programa: Todo lo
contrario.
Utiliza
SELECT en lugar de IF Anidados. El Select hace mas legible el programa y
al evaluar la condición y verificar que se cumple, el sistema operativo abandona
la evaluación del resto de las sentencias y pasa directamente a la siguiente
instrucción por lo que el tiempo de respuesta se reduce considerablemente.
4.-Chain de Tablas
Pequeñas
A veces tenemos un lazo
por ejemplo un DO WHILE que lee un archivo de millones de registros. Por cada
iteración se realiza un CHAIN a la tabla de sucursales por ejemplo. Si tenemos
6 millones de registros hacemos 6 millones de chain a una tabla que contiene 50
registros. Este acceso constante al disco para un archivo tan pequeño consume
un tiempo enorme de ejecución.
Para reducir el tiempo de
respuesta es preferible, al principio del programa, cargar la tabla de sucursales
en un par de arreglos. Luego el lazo de los 6 millones de registros hace un
Lookup a ese arreglo que fue cargado en memoria y leído solamente 50 veces.
Guao! muy distinto 50 accesos al disco que 5.999.950 ¿verdad?
Notaras la diferencia en
tiempo de respuesta inmediatamente de manera impactante.
5.-Condiciones de los
Lazos
Podemos realizar lazos de
lecturas sobre un archivo DO WHILE y
dentro del lazo evaluar ciertas condiciones para determinar si abandonamos el
lazo o permanecemos en el mismo. A veces se cumple la condición para salir del
lazo y podemos aplicar un LEAVE en lugar de permanecer leyendo todo el archivo
hasta fin de archivo.
Si
quieres tener mayor información sobre este tema puedes revisar los artículos
publicados por mi anteriormente en estos enlaces:
Si te pareció
interesante, reenvíalo a un amigo haciendo click en el sobrecito que está al
final del artículo. El conocimiento es valioso, compártelo.
Autor:
Ing. Liliana Suárez
No comments:
Post a Comment