Освободите память: Как удалить переменные один раз с ними - VBA VB ACCESS
Как освободить память?
скажем, у меня есть строка
Dim TestStri As String
TestStri = "Test"
' What do i have to type up to get rid of the variable?
' I know
TestStri = Nothing
' will give it the default value, but the variable is still there.
могу ли я использовать тот же метод для других переменных, т. е. Long, int и т. д.
1 ответов
Я предполагаю, что вы имеете в виду VB6 и VBA, как указано в вашем названии, а не VB.Net, как указано ключевым словом.
в VB6 и VBA потребление памяти строковой переменной состоит из фиксированной части для длины строки и Терминатора и части переменной длины для самого содержимого строки. См.http://www.aivosto.com/vbtips/stringopt2.html#memorylayout для хорошего объяснения этого.
Итак, когда вы устанавливаете строковую переменную в пустая строка или vbNullString, вы будете освобождать переменную часть строки, но не фиксированную часть.
другие типы, такие как long, int, bool и date, потребляют фиксированный объем памяти.
вы не можете "освободить" локальные переменные в VB полностью (подумайте об этом, есть ли какой-либо язык программирования, где вы можете это сделать?), и по большей части вам все равно, потому что сами локальные переменные (фиксированная часть) обычно очень малы.
Только случай Я могу думать о том, где потребление памяти локальных переменных может стать большим, если у вас есть рекурсивные вызовы функций с глубокой рекурсией/широкой рекурсией.