Вызвать сборку "мусора" в AS3?

Сервер ДОЛЖЕН сгенерировать поле заголовка Allow в ответе 405, содержащем список поддерживаемых в настоящее время методов целевого ресурса.

blockquote>

Для получения дополнительной информации см. документ

То есть запрос POST к url не принят вашим сервером. Попробуйте внимательно посмотреть на это:

"url": "url", // what is the url? `"url":"ServerURL"`
18
задан defmeta 10 October 2008 в 17:30
поделиться

4 ответа

Да, это возможно, но это обычно - плохая идея. GC должен иметь лучшую идею того, когда хорошее время для выполнения, чем Вы должны, и за исключением очень конкретного случая, как Вы просто использовал 500 МБ памяти, и необходимо получить его назад как можно скорее, Вы не должны называть GC сами.

В Flash 10, существует System.gc() метод, который можно назвать (но не делайте, смотрите выше) - имеют в виду, что System.gc () только работает в отладочной версии Flash player 10 +.

В Flash 9, существует неподдерживаемый способ вызвать его через нечетную команду LocalConnection, но он не может работать во всех версиях. См. это сообщение Grant Skinner.

25
ответ дан 30 November 2019 в 06:07
поделиться

Поскольку другие сказали: не пробуйте к GC вручную, существуют взломы, но это не безопасно.

необходимо попробовать переработка объекты, когда Вы можете - Вы сохранять большую память.

Это может быть применено, например, к BitmapDatas (ясный и повторное использование), частицы (удалите из дисплея и повторного использования).

3
ответ дан 30 November 2019 в 06:07
поделиться

Для всех в настоящее время выпускаемых версий System.gc () только работает в отладочной версии Flash player и ADL (среда отладки для приложений AIR). Бета Flash player 10 в настоящее время работает во всех разновидностях.

я соглашаюсь с Davr, это - плохая идея сделать. Время выполнения будет обычно иметь лучшую идею, чем Вы.

Плюс, специфические особенности того, как сборщик "мусора" работает, являются деталью реализации, подлежащей изменению между версиями Flash player. Таким образом, какие работы хорошо сегодня не имеют никакой гарантии для работы хорошо в будущем.

8
ответ дан 30 November 2019 в 06:07
поделиться

У меня есть замечание к тем, кто говорит, что никогда не следует делать GC вручную. Я привык к ручному управлению памятью в C++ и предпочитаю sharedptr намного больше, чем GC, но в любом случае.

Есть конкретный случай, когда я не могу найти другого решения, кроме как сделать GC. Пожалуйста, рассмотрим: У меня есть класс DataCache, его работа заключается в том, что он хранит объекты результатов для определенных вызовов методов, которые посылают обновленные события при обновлении/получении данных. Способ обновления кэша заключается в том, что я просто очищаю все результаты из него и посылаю событие, которое заставляет всех оставшихся слушателей повторно запрашивать свои данные, а слушатели, которые вышли из области видимости, не должны повторно запрашивать, что очищает ненужные результаты. Но, очевидно, если я не могу заставить всех слушателей, которые все еще висят в ожидании GC, быть очищенными немедленно перед отправкой события "снова запросить данные", эти висящие слушатели будут снова запрашивать данные без необходимости. Так как я не могу удалитьEventListener, потому что AS3 не имеет деструкторов, я не вижу другого простого решения, кроме как заставить GC убедиться, что больше нет висящих слушателей.

(Edit) Вдобавок к этому я не могу использовать removeEventListener в любом случае для привязок, которые были установлены в mxml, например (используя мой пользовательский класс DataCacher, который обрабатывает remoteobj)

<mx:DataGrid id="mygrid" dataProvider="{DataCacher.instance().result('method').data}" ... />

Когда всплывающее окно, содержащее этот datagrid, закрывается, вы ожидаете, что привязки будут уничтожены. Очевидно, что они продолжают жить и жить. Хм, а разве flex не должен уничтожать все привязки (то есть eventlisteners) от объекта, когда он помечен для GC, потому что последняя ссылка удаляется. Это вроде как решило бы проблему для меня.

По крайней мере, я так думаю, я все еще новичок во Flex, поэтому любые мысли будут приняты с благодарностью.

3
ответ дан 30 November 2019 в 06:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: