![]() |
Обмануть мусорщика
На сколько я знаю, Garbage Collector кушает много процессорного времени.
Какие есть способы его хитрого использования? Знаю, есть, например, пул объектов. А ещё?.. Можно вообще вырубить GC, и удалять объекты вручную, вызывая какие-нибудь его методы? |
Можно обмануть его, сохранив ссылки на все объекты и кучу слушателей к ним ;)
|
Что он там кушает никого не волнует, пока Вы не запускаете шаттл.
Вырубить нельзя, и слава богу. |
Цитата:
А нет возможности спровоцировать его на удаление объекта по ссылке? Взяв на себя обязанность учитывать все конфликты? Цитата:
|
Тут все это раз десять уже обсуждалось.
Вот такая статья есть: http://easyflash.org/flashlearn/flas...-pamyatyu.html Еще кое-что в том же духе. Но, честно говоря, все это от лукавого. На мощных компьютерах это будет незаметно, а на слабых не спасет. |
Возможности нет.
Что ж Вы там такое делаете что о GC беспокоитесь? |
Цитата:
Добавлено через 1 минуту Цитата:
Цитата:
А нагрузки бывают большими и на мощные машины… |
Цитата:
у какого-нибудь пользователя будет открыто еще десять вкладок с пятью играми в браузере и все равно будет дергаться |
semenyakinVS, расскажите про физический движок?
CCD используете? |
Цитата:
И что же возможно сделать с памятью? |
Цитата:
Добавлено через 1 минуту Цитата:
|
Цитата:
Нет, спасибо. |
Кстати зря вы так. Я сам реализовывал свой GC для кэширования битмапов. У меня хранился счётчик "пользователей" битмапа, если был не нужен - убивал (dispose).
Но дефактовый коллектор я никак не трогал... пусть живёт себе. |
Цитата:
|
Цитата:
Добавлено через 5 минут Цитата:
Dispose это функция GC? |
Цитата:
Управлять gc можно только в дебаг-версии. Кстати, по-поводу приблуды MemoryController. Она использует старый хак с LocalConnection. Нет никакой уверенности, что его не пофиксят в очередной версии плеера. Так что, ненадежно все это и не нужно, по-большому счету. Есть и более цивилизованные методы оптимизации. Если так хочется дергать gc, то лучше воспользуйтесь этим. |
Цитата:
|
А есть ли возможность чистить память "по команде"? Чтоб было привязано к какому-то событию.
|
А зачем?
|
System.gc()
|
Цитата:
|
in4core как всегда все разрулил )
|
Для расчетов можно сделать свой GC на основе битмапдат
Создаем битмапдату заполняем ее своими числами ( битмапдата это просто двухмерный массив где каждая его ячейка может принимать числа от 0 до 4 294 967 295 (uintMAX) если расчеты имеют знак числа ( типа отрицательное/положительное ) или числа с запятой, можно сохранить и вынуть знак и флоат значение через битовые операции ) после того как данные не нужны вызываем dispose() UPD изменил сообщение так как сам проверил, битовые операции в флеше шикарно позволяют сохранить как флоат так и его знак... |
Вот засорение памяти из за простых типов меня как то совсем не волнует)
|
Цитата:
|
Сиплюсплюса на вас нет)
Научились бы как убирать за собой! Разве сложно сделать свой метод destroy который будет подчищать? |
@Котяра Не вижу проблем, помоему большенство уже делает destroy() метод, причем с таким же названием ))) Но автор видимо именно ГЦ ждет, самому не охота чистить
|
Цитата:
upd предвижу очень большие траблы с утечкой графической памяти с этим пресловутым молехиллом.. Я уже добился краша графсистемы )) но я просто тестил - реально никто в эту нору лезть глубоко не будет, кроме разработчиков дижков. |
Цитата:
Например, автомобильные гонки на базе какого-нибудь 3D-движка вроде Альтернативы. Там при построении карты для одной трассы суммарный объем используемых битмапдат может быть и 200Мб и больше. Если перед заездом на новой трассе не прибивать полностью старую, плеер легко забирает под себя всю память, до которой дотянется. :) |
Цитата:
|
| Часовой пояс GMT +4, время: 02:11. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.