Vida de una Variable

14/09/2006 - 20:23 por BassXpander | Informe spam
Saludos !!

Tengo una duda en cuanto a la vida de una variable (del tipo que sea),
quiza parezca muy básica, pero me gustaria despejarla.

Tengo entendido que cuando se declara una variable global, esta se
mantiene viva mientras la aplicación que la contenga este en
ejecucion, eso consume x cantidad de memoria

En contraparte, una variable local solo vive dentro del procedimiento
que la contiene.

Mi duda es esta: si el procedimiento se ejecuta un numero muy grande de
veces, que es mejor, declarar la variable global o local??

Dicho en palabras de vb.net

**************************************
caso 1 'Variable declarada global

sub Main
dim x as string
end sub

'Este codigo se ejecuta muchisimas veces , responde a un evento
generado por cualquier objeto

private sub DetectarConexion() handles CualquierEvento

x= "valor inicial"
' Codigo que manipula la variable

x= nothing

end sub

****************************************

**************************************
caso 2 'Variable declarada local

sub Main

end sub

'Este codigo se ejecuta muchisimas veces , responde a un evento
generado por cualquier objeto

private sub DetectarConexion() handles CualquierEvento

dim x as string

x= "valor inicial"
' Codigo que manipula la variable
x= nothing

************************************

¿Cual de ambos casos tendria mejor performance?

Gracias
 

Leer las respuestas

#1 Alberto Poblacion
14/09/2006 - 22:30 | Informe spam
"BassXpander" wrote in message
news:
[...]
caso 1 'Variable declarada global
sub Main
dim x as string
end sub



OJO, esa variable no es global. Es local al Sub Main, y se destruye al
salir del Sub Main y además no es visible desde ningún otro procedimiento.

[...]
private sub DetectarConexion() handles CualquierEvento
Dim x as string
x= "valor inicial"
[...]
x= nothing

¿Cual de ambos casos [x dentro o fuera] tendria mejor performance?



En cuanto a performance te va a dar igual. Lo que cuesta trabajo en
tiempo de ejecución es la asignación del valor inicial y la asignación de
Nothing. El Dim se procesa en tiempo de compilación y no tiene ningún
impacto en tiempo de ejecución. En el primer caso (x global) el compilador
va a reservar un espacio en el segmento de datos de la CPU, y en el segundo
caso va a sumar unos cuantos bytes más al puntero de pila cuando entre en la
subrutina. En cualquier caso no se debería notar prácticamente ninguna
diferencia.
Por lo tanto es mejor declarar la variable como local, ya que es mucho
mejor estilo de programación y facilita el mantenimiento del programa.

Preguntas similares