![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Может ли вызвать тормоза наличие в памяти нескольких тысяч (тысячи три, наверное) мувиклипов? Думаю, что может. Клипы не находятся сцене, но самого их существования достаточно для диких тормозов. Подозреваю, что это связано с работой сборщика мусора.
В связи с этим возникает вопрос, можно ли каким нибудь способом управлять его работой (хотя бы отключать на время)? |
|
|||||
|
[+1 14.08.08]
[+1 20.08.08] |
наличие в памяти трех тысяч мувиков не всегда означает тормоза. Если там большие растровые картинки - тогда возможно.
Тормоза могут вызвать создание или перемещение такого количества объектов в одном кадре. Никогда, например, нельзя создавать 3 000 лоадеров в одном кадре. Нужно этот процесс разнести на несколько кадров, по 100 лоадеров, например. Тогда подвисаний не будет. А gc управлять нельзя. Можно аккуратно поудалять все ссылки на объекты и отписаться от событий и _надеяться_ что он сработает. Но вообще, когда я пишу код, я на него не расчитываю вообще. Например, есть игра dofus, на флеш. Там за час-два игры легко может скопиться около гига мусора в оперативке.
__________________
~ Never trouble trouble till trouble troubles you! |
|
|||||
|
Цитата:
Цитата:
Цитата:
|
|
|||||
|
[+1 14.08.08]
[+1 20.08.08] |
Цитата:
А еще они долго отрисовываются, потому что ваша видеокарта не задействована для этого. Непонятно. Gc никто никогда обезвреживать не пытается. Он и так срабатывает очень-очень редко. Вы действительно уверены, что тормоза вызывает большое количество объектов в памяти? Если уменьшить их количество - тормоза уходят? Откуда они берутся в памяти, как быстро создаются в памяти(в течении одного кадра, или накапливаются) и зачем в памяти нужны?
__________________
~ Never trouble trouble till trouble troubles you! |
|
|||||
|
Цитата:
Цитата:
Цитата:
|
|
|||||
|
Цитата:
По теме - если клипов нет на сцене, это не значит, что для них не ведутся расчеты. Нужно удалять листенер для клипа, если он есть. Например, если клип был подписан на ENTER_FRAME и если этот клип удалить, не удалив листенер, то ENTER_FRAME будет продолжать срабатывать. Возможно причина в этом. Или в других расчетах, если они ведутся для клипов. |
|
|||||
|
Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
|
Цитата:
Только расчеты ведутся не в ней. |
|
|||||
|
[+1 14.08.08]
[+1 20.08.08] |
вы грузите из файлов 4к swf'ок в одном кадре? это не мгновенный процесс даже для локальной подгрузки. Скорее всего тормоза из-за этого.
2Волгоградец: изначально видеокарточка нужна была только по одной причине - процессор слишком медленно отрисовывал графику и этот процесс отображался на мониторе и раздражал. Поэтому появилась видеокарточка, у которой есть своя собственная память. Процессор рисует в память видеокарточки, потом видеокарточка мгновенно отображает изображение, а процессор в это время уже рисует в другом куске видеопамяти. Потом у видеокарточки появился собственный процессор, который заточен под просчет некоторых матриц и векторов, характерных для работы с дисплеем. Поворот, сложение, умножение на скаляр. Так вот флеш всем этим не пользуется. Все повороты, наложение одной картинки на другую, просчет альфы - все вешается на твой процессор.
__________________
~ Never trouble trouble till trouble troubles you! Последний раз редактировалось Chas; 13.12.2008 в 17:49. |
|
|||||
|
Цитата:
Добавлено через 6 минут Я не понимаю, что значит в одном кадре? Загрузка во флеш асинхронная, и вреде бы другой и нет. Я 5-8 секунд наблюдаю полосочку загрузки после чего собственно и начинается видюшка. |
![]() |
![]() |
Часовой пояс GMT +4, время: 08:09. |
|
|
« Предыдущая тема | Следующая тема » |
|
|