Добрый день. Заметил такую вещь, что программы, написанные на autoit, работающие в режиме 24/7 и в которых есть функции, постоянно увеличивают потребление памяти ОЗУ.
Для примера:
В цикле вызываю функцию _test() каждые 5 секунд, в которой обрабатывается больший массив. По логике, при выходе из функции все переменные внутри функции должны освободить память. В диспетчере задач можно отследить, когда идет обращение к функции _test() - резко растет потребление ОЗУ, а в перерыве 5 секунд можно увидеть как потребление падает. И с каждым разом, после выхода из функции потребление памяти растет - почему?
Для примера:
Код:
While 1
_test()
sleep(5000)
WEnd
Func _test()
Local $ar[2000][2000], $i, $j
For $i=0 To UBound($ar)-1
For $j=0 To UBound($ar,2)-1
$ar[$i][$j]=Random(0, 10000)
Next
Next
EndFunc
В цикле вызываю функцию _test() каждые 5 секунд, в которой обрабатывается больший массив. По логике, при выходе из функции все переменные внутри функции должны освободить память. В диспетчере задач можно отследить, когда идет обращение к функции _test() - резко растет потребление ОЗУ, а в перерыве 5 секунд можно увидеть как потребление падает. И с каждым разом, после выхода из функции потребление памяти растет - почему?