En este oportunidad, tres sencillos tips para mejorar el performance del programa Rpg
1.-Subrutinas versus Subprocedures.
El uso de Subprocedure ofrece las siguiente facilidades:
- Uso de variables locales
- Pase de parámetros
- Puede ejecutarse como funciones (Built-in)
- Puede ser exportado a otros programas.
Si no es necesario utilizar las facilidades que brinda el uso de subprocedures es preferible utlizar subrutinas.
En general el EXSR se ejecuta más rapidamente que la invocación a un subprocedure.
2.-El uso de SETLL en lugar de CHAIN.
SETTL y %Equal responde más rapidamente que CHAIN.
Si solamente se requiere determinar si un registro con cierta clave existe o no existe, es preferible utilizar el settl.
Algunos autores esgrimen que la diferencia es insignificante, sin embargo cuando se trabaja con millones o billones de registros puede ser significativo ahorrar tiempo tanto como sea posible.
3.-Registros Retenidos (Allocated)
Aunque este punto no es una mejora del performance de por sí, es conveniente prestar atención a esto para evitar fallas y retrasos a tiempo de ejecución.
Supongamos que tenemos un archivo declarado update y realizamos la siguiente operación:
chain (clave1: clave2) archivo;
If campo1 = 'Y';
campo2 = '001';
update archivo;
Endif;
Esta secuencia de instrucciones aparentemente inofensivas puede dejar "allocated" un registro si la condición CAMPO1 = 'Y' no se cumple ya que no hay un ELSE que libere (unlock) el registro retenido con el chain.