Pregunta: | 349 - PROBLEMAS CON MEMORIA CONVENCIONAL |
Autor: | Gerardo Quiros |
Soy estudiante y he tenido problemas con los programas que he desarrollado en Clipper 5.2 a la hora de ejecución pues estos son muy grandes. He hecho el LINK usando el metodo de los OVL y de un solo EXE, sin embargo sigo teniendo las mismas dificultades. Ademas quisiera saber que significa el numero que muestra al terminar de hacer el LINK.(ej.409K). Que puedo hacer? |
Respuesta: | Rafa |
prueba a usar blinker para enlazar y el siguiente archivo lnk:# uso de overlays |
Respuesta: | Nodgard Seguias |
escribeme yo te puedo ayudar |
Respuesta: | Gerardo A. Mendoza |
Hola: Muchas veces los problemas de memoria no son del programa, si no de la programación. Deberías considerar seriamente las propuesta de clipper en cuanto a los siguientes puntos: -Utiliza variables "Local" y "Static" olvidate de las Public y Private lo más posible, salvo en casos que sean absolutamente necesarias, y creéme, no son tan necesarias. -Independientemente del tipo de variable que utilices declárala. -Recuerda que se propone una programación modular, con lo cual debes utilizar rutinas (function/procedure) "Static", que solo son visibles dentro del .PRG que existen. Hay muchas rutinas que son de apoyo. -Trata de utilizar los arreglos, ya que estos solo generan "un" nombre de variable en la tabla de símbolos. Por ejemplo para realizar un proceso entre un rango de fechas y alguna clave (evita 3 variables con un arreglo que contenga estos datos). -Procura que tus rutinas no sean demasiado grandes, por aquello de la paginación de memoria que utiliza el VMM de Clipper. -Declara los parámetros de tu rutina dentro de la declaración de ésta, para que sean locales. Static Function FuncionX(param1, param2, ...)en vez deStatif Function FuncionXParameters param1, param2, ...-Crea rutinas genéricas que puedas utilizar más de una o dos veces a lo largo de tu aplicación. Utiliza LIB para crear tu propia librería. -Aunque es demasiado tarde, los campos de las tablas (.DBF) son considerados como variables Public, lo cual significa que aunque cierres la tabla los campos existen. Por eso es recomendable utilizar los mismos nombres de campos en las diferentes tablas, por ejemplo las claves de los catálogos y las tablas de transacciones. -Usa el Alias de las tablas para referenciar los campos y que sea fácil distinguirlos de las variables CLIENTES->claveclien. Y en lo que pueda seguir ayudándote. Saludos. :-) |
Respuesta: | Juan Reyes |
... Ademas quisiera saber que significa el numero que muestra al terminar de hacer el >LINK.(ej.409K). Que puedo hacer? Veo que ninguno de mis amigos anteriores te respondió esto, ya que no es común que se informe por allí. Este número amigo indica el TAMAÑO DE CARGA de tu aplicación. Es decir, la cantidad de memoria convencional que requiere tu aplicación para cargarce en la memoria convencional, en el caso de tu ejemplo, debes de informarle a tus clientes que tu sistema requiere 409Kb de memoria convencional para ejecutarce. Si estas enlazando con blinker, utiliza al final de tu LNK una de las siguientes líneas : // Reemplaza la ruta que corresponda@e:\lib\bl41\clp\lnk\CL520Max.Lnk Este valor te aparecerá en modo real o dual, fíjate que en modo extendido no te aparece, lógico, ya que exigencia de memoria convencional no hay en este modo extendido ( BLINKER EXECUTABLE EXTENDED ). :-) Juan Reyes |