Это основной вопрос для всех языков программирования, но я хорошо знаком с VBA. Так что я использую код VBA. У меня есть некоторые сомнения по поводу освобождения памяти. Производительность ухудшается, когда мы стираем или меняем выделенное содержимое?
что-то вроде
Метод I , где мы освобождаем выделенную память
sub my_function()
Dim a() as string
redim a(1 to 15)
'some for loop goes here aroung 50 iterations
erase a ' Deallocate the array
' some piece of code goes here may be 40 lines
end sub
Метод II , где мы не освобождаем память
sub my_function()
Dim a() as string
redim a(1 to 15)
'some for loop goes here aroung 50 iterations
'some piece of code goes here may be 40 lines
end sub
Метод III где мы выделяем память на последнем уровне
sub my_function()
Dim a() as string
redim a(1 to 15)
'some for loop goes here aroung 50 iterations
'some piece of code goes here may be 40 lines
erase a 'deallocate the memory
end sub
Вопрос
Метод I - это стереть а, пожирает ли он какие-то огромные циклы? или больше байтов оперативной памяти? или я должен ждать конца подпрограммы, или я должен использовать оператор стирания
Метод II В подпрограмме нет оператора стирания, функция убивает массив в конце подпрограммы, но мне не нужен массив до конца функции, так что это достаточно быстро или оптимизировано
Метод III На первых же часах люди говорят, что глупо выделять в конце подпрограммы, так как сама убивает в конце, Но я очень хочу знать Спасибо