DIFICIL: memoria ocupada por los arrays
Publicado por Rubén (13 intervenciones) el 20/01/2007 18:10:53
Hola amigos, tengo una duda relacionada con la gestión de la memoria en VB6.
Supongamos que tengo una macro estructura como esta
Type MiTipo1
dato1 as string
dato2 as string
...
dato n as string
End Type
Type MiTipo2
listado() as MiTipo1
end Type
Dim variable() as MiTipo2
...
...
Y ahora mediante un procedimiento hago esto:
sub MiProc()
Redim Preserve variable(999)
for i=0 to 999
Redim Preserve variable(i).listado(1999)
next
end sub
' es decir acabo de crear a saco 2.000.000 de registros, 2000 mitipo2 por cada un mitpo1
MI PREGUNTA ES.. que pasa con la memoria que esta ocupando esta toooda estructura en estos casos :
1) Si la variable está declarada dentro de MiProc.. Al finalizar el procedimiento se liberan los 2.000.000 de registros?
2) Si , estando la variable como global, tras ejecutar MiProc hago
Redim variable(0)
.. esto me lo elimina todo de la memoria? o tal vez debiera hacer Redim de los registros Mitipo1???
Muchas gracias a todos.
Rubén.
Supongamos que tengo una macro estructura como esta
Type MiTipo1
dato1 as string
dato2 as string
...
dato n as string
End Type
Type MiTipo2
listado() as MiTipo1
end Type
Dim variable() as MiTipo2
...
...
Y ahora mediante un procedimiento hago esto:
sub MiProc()
Redim Preserve variable(999)
for i=0 to 999
Redim Preserve variable(i).listado(1999)
next
end sub
' es decir acabo de crear a saco 2.000.000 de registros, 2000 mitipo2 por cada un mitpo1
MI PREGUNTA ES.. que pasa con la memoria que esta ocupando esta toooda estructura en estos casos :
1) Si la variable está declarada dentro de MiProc.. Al finalizar el procedimiento se liberan los 2.000.000 de registros?
2) Si , estando la variable como global, tras ejecutar MiProc hago
Redim variable(0)
.. esto me lo elimina todo de la memoria? o tal vez debiera hacer Redim de los registros Mitipo1???
Muchas gracias a todos.
Rubén.
Valora esta pregunta


0