уничтожить массив () - PullRequest
       18

уничтожить массив ()

0 голосов
/ 12 февраля 2009

Как освободить память и уничтожить массив, это нормально делать просто так

  myarr = null
  myarr = new Array

все ли старое содержимое myarr теперь освобождено из памяти?

Ответы [ 3 ]

1 голос
/ 12 февраля 2009

Если больше нет ссылок на этот объект массива, он собирается системой сбора мусора (GC). Поэтому, когда вы спрашиваете «все ли старое содержимое myarr сейчас освобождено из памяти?», Ответ может быть таким. Но вы не можете контролировать, когда GC работает с виртуальной машиной Actionscript.

Таким образом, верно сказать, что когда больше нет ссылок на объект, при следующем запуске сборщика мусора он будет собран.

Также все становится сложнее, когда вы имеете дело с массивом. Объект Array может быть собран, но это не означает, что объекты, на которые ссылается Array, также будут очищены. Объекты, на которые ссылается массив, могут быть одной из многих ссылок на эти объекты, например, может быть, копия этого массива существует в вашей системе, то есть, по крайней мере, две ссылки существуют на каждый объект в каждом массиве.

Также следует помнить, что слушатели событий не позволяют объектам собираться мусором, если только они не являются слабыми слушателями событий

1 голос
/ 12 февраля 2009

Если у вас нет другой ссылки на массив в другой переменной где-нибудь, память массивов будет восстановлена, когда GC доберется до нее.

0 голосов
/ 12 февраля 2009

myarr = ничего

Сборка мусора в .Net все равно будет сортировать. Вот если вы в .NET.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...