LIBERAR MEMORIA??

11/05/2008 - 22:18 por Orfao | Informe spam
Hola Grupo !
tengo un libro bastante grande donde ejecuto codigo para actualizar ciertos
valores
pero he notado que la primera vez tarda 2.1 seg la segunda 3.0 la tercera
3.48 la cuarta 4.37 y asi... (aproximadamente 50 segundos mas en caca
ejecucion).
lo cual vuelve a tardar el minimo de 2.1 si y solo si guardo y cierro y
vuelvo a abrir.
me imagino que es un problema de almacenamiento de variables "memoria" o
algo por el estilo. La pregunta es como sin necesidad de cerrar la sesion de
excel puedo liberar esas maviables o memoria o resetear todo o etc...
uso excel 2003 en xp sp2 y dimensiono las variables en alguna de las
funciones. es esto determinante ??? "el option explicit solo lo tengo en
algunos modulos" que diferencia habria ? es necesario dimensionar cada una de
las variables ? en otro caso, como liberar la memoria ? en cada procedimiento
? en cada funcion ? en cada modulo ? al finalizar el recalculo ?
en definitiva como hacer constante el tiempo de recalculo y como minimizarlo
???
Gracias de antemano...


Me alimento del conocimiento de todos
 

Leer las respuestas

#1 Héctor Miguel
12/05/2008 - 03:05 | Informe spam
hola, moises !

tengo un libro bastante grande donde ejecuto codigo para actualizar ciertos valores
pero he notado que la primera vez tarda 2.1 seg la segunda 3.0 la tercera 3.48 la cuarta 4.37 y asi...
(aproximadamente 50 segundos mas en caca ejecucion).
lo cual vuelve a tardar el minimo de 2.1 si y solo si guardo y cierro y vuelvo a abrir.
me imagino que es un problema de almacenamiento de variables "memoria" o algo por el estilo.



esta parte es mas seguro que probable, que SI este siendo una causa (de entre varias mas posibles) de esta "desmejora"

La pregunta es como sin necesidad de cerrar la sesion de excel puedo liberar esas maviables o memoria o resetear todo o etc.



esta parte (dejando de lado un momento el "etc.") es cuestion de "usos y costumbres" al administrar tus variables -???-

uso excel 2003 en xp sp2 y dimensiono las variables en alguna de las funciones. es esto determinante ???
"el option explicit solo lo tengo en algunos modulos" que diferencia habria ?



el uso del "option explicit" es (solamente) mientras estas escribiendo el codigo que no te deje usar variables NO declaradas
este intento ocasiona una "depuracion" (mensajes de error) y OJO con las depuraciones... son causa de "crecimiento" de archivos :-((

es necesario dimensionar cada una de las variables ?



esta parte depende de la intencion, proposito, uso y administracion de tus variables -???-

en otro caso, como liberar la memoria ?
- en cada procedimiento ?
- en cada funcion ?
- en cada modulo ?
- al finalizar el recalculo ?



(generalmente) es una "sana costumbre" seguir "ciertas reglas" al programar aplicaciones
de manera (solamente) enunciativa, puedes incluir algunas de las siguientes:
- las variables de uso "general" declararlas en un modulo estandar como "Public" (y segun el tipo de cada variable)
- las variables de objeto, que establezcas sus referencias mediente una instruccion del tipo:
Set <variable_de_objeto> = <el_objeto_asignado>
procura "destruirla"... "en cuanto deje de ser util o haya cumplido su proposito con otra instruccion del tipo:
Set <variable_de_objeto> = Nothing
SOBRE TODO, si este tipo de variables lo usas en procedimientos "Function" a los que haces llamadas frecuentes o recursivas -???-
- de seguro hay mas "costumbres sanas" que debieras tener en cuenta (faltaria conocer tus usos y costumbres ?)

en definitiva como hacer constante el tiempo de recalculo y como minimizarlo ???



esta pregunta... SIN los detalles PRECISOS... (me temo que)... no tiene respuesta :-((
(no existe una "receta de cocina"... ni una "solucion de tres palabras"... ni una "regla universal"... ni nada parecido)

saludos,
hector.

Preguntas similares