Feliz Navidad 2015

Como todos los años, el personal de KRATOS le desea a Usted y su familia que pase una Feliz Navidad recordando el propósito de esta celebración y que 2016 sea un año de realizaciones y éxitos.

Uso de memoria

Tal como se describió en el Enlace anterior, la versión 7403 tendrá más memoria para los programas al pasar los archivos permanentes a un bloque independiente de 32k diferente al 0, además el módulo CLS con opción M dará más información de cómo se usa la memoria, que aparecerá de la siguiente forma:

16k xx%
32k xx%
ORD xx%
OTA TAB xx%
OTA VAR xx%
VECTORES xx%
IMP NVO xx%
TERM xx%
TEMP xx%
PERM xx%
TOTAL xx%


Que son las diferentes áreas del programa y el porcentaje de uso respecto al límite, de modo que si un programa se encuentra en el límite de memoria, se deberá revisar qué área tiene el XX% mayor y así buscar reducirlo.

El significado de cada renglón es:

16k

En esta memoria están ciertos indicadores así como los datos y variables usados por el programa.

32k

En esta memoria además de lo que contiene los 16k están ciertos buffers así como las instrucciones del programa.

ORD

Es lo que se usa por BUSCAR RECURRENTE con opción ORD.

OTA TAB

Es lo que se usa para las tablas de OPCION TERMINAL AREA.

OTA VAR

Es lo que se usa para leer, escribir o modificar las variables usadas en las áreas de OPCION TERMINAL AREA

VECTORES

Es lo que se usa por los vectores del programa.

IMP NVO

Es lo que se usa por las tablas de OPCION IMPRIMIR en las nuevas instrucciones.

TERM

Es lo usado por la matriz que representa la pantalla.






TEMP

Es lo usado por las tablas para manejo de temporales.

PERM

Es lo usado por las tablas para manejo de permanentes.

TOTAL

Es lo usado por todo el programa en comparación con la memoria total separada para el mismo que son 120k



La pregunta es qué hacer cuando en un programa, alguno de los porcentajes está llegando al 100%. Los siguientes comentarios son aplicables:

  • Si el problema es con variables, tratar de reducir el uso de variables de AREA posiblemente usando una misma variable en diferentes partes del programa.

  • Si el problema es con OPCION TERMINAL AREA se pueden reducir el número de renglones de áreas de COLUMNA, MENU de variables o TEXTO.

  • En OPCION TERMINAL AREA el uso de líneas dentro de áreas genera matrices que usan memoria.

  • Tener una sola área para errores y tener USOS en las mismas reduce el número de áreas y por consecuencia el uso de memoria.

  • Si el problema es de VECTORES tratar de usar los de RANGO-EXTENDIDO que usan poca memoria pero pueden ser lentos si se accedan repetidamente en forma aleatoria, es decir primero el 1, luego el 1000, luego el 200,...

  • En el diseño del banco de datos se usan muchas veces los permanentes como tablas, si varias de estas tablas se juntan en un permanente en que el R1 sea una tabla, el R2 otra,... se puede reducir el uso de memoria.

  • Dependiendo de la lógica del programa y de las opciones de uso, en algunos casos dos temporales se pueden usar con el mismo número y así reducir las tablas.