![]() |
System.totalMemory: ударные темпы роста
Здравствуйте.
имеем [CENSORED] в левом верхнем углу там видно System.totalMemory. перемещаясь по portfolio, можно легко убедиться, что System.totalMemory все время возрастает. когда доходит дело до видео то вообще. водскажите пожалуйста, что я делаю не так? класс для объекта галереи: Код AS3:
класс для группы тумбнейлов: Код AS3:
|
Для оформления кода используйте теги [as3][/as3].
|
да, прошу прощения.
|
да, насколько я могу судить, это главное. - и память свободна)
Добавлено через 23 минуты я все зануляю, от всего отписываюсь, удаляю не только главный объект из дисплейлиста но и всех детей от него тоже, и их детей, и детей их детей. объекты вроде перестают существовать, но память жрется с бешеной скоростью и не освобождается никогда. браузер рано или поздно виснет.. заказчик скоро меня пошлет. ответьте пожалуйста на такие вопросы а то я сам не уверен. 1. если объекты имеют ссылки друг на друга, но находятся не в дисплейлисте, и никто в дисплейлисте не имеет ссылок на эти объекты. будут ли они уничтожены? 2. неужели нет способа вызывать GC принудительно? А то, например, когда в галереее загружается видео, тоталмемори возрастает, потом (когда его уже типа удалили)снижается но не до исходной отметки, и очень не сразу. хотя я останавливаю видео и делаю unload(); .. и тормозит. на это видео натравить бы GC сразу как я отписался. 3. когда делаешь debug->list objects (ctrl-L), видишь там только элементы дисплейлиста. их и так видно, а как увидеть те которые НЕ в дисплейлисте? 4. Почему не работает download? имеем Код AS3:
5. Через неравные промежутки времени происходит нечто, и памяти становится занято на 41 байт больше. это необратимо. уже я искал всячески. что это такое может быть? 6. что происходит с объектами, которые не в текущем кадре? вот, скажем, у меня есть в кадре #40 такое. Код AS3:
и вот, я перехожу в соседний кадр. кнопки больше в дисплейлисте нет. в списке объектов (в дебаггере List Objects) ее нет. но память она занимает и со временем никуда не девается! или нет? 7. когда вызывается fileReference.browse(), то все останавливается. как это вызвать самостоятельно? прошу вас, братцы, помогите я сильно горю по срокам. |
Картинки каких размеров?
И да, потребление 400+ мегабайт памяти и 120% двухядерного процессора — не самое лучшее достоинство сайта. Я бы сказал, главная особенность. |
а, картинки маленьки ваще..
Да, как бы нифига ни разу не круто. У меня 140%. Еще это небо. Оно обязательное условие в "дизайне".. Оно в эти 140 делает значительный вклад. Дополнительный вопрос: как можно оптимизировать проигрывание ролик на фоне? сейчас это видео на таймлайне |
Цитата:
|
Ох, ты ё, это видео, а я думал что Вы так с PerlinNoise так зафигачили.
Ну во-первых убрать видео с тамлайна, и запустить сайт без него. У Вас же сайт-то простой, там нет ничего такого чтобы жрало ресурсы. Попробуйте убрать фоновое видео, и потом летающие штуки, Вы их удаляете,когда они за экран уходят? |
Цитата:
|
я горжусь вами, братцы.
На вопрос "что делать с небом - оно должно присутствовать но не тормозить?" получаем два отличных совета от него избавиться. На главный вопрос "что жрет ресурсы??" имеем "там нет ничего такого чтобы жрало ресурсы". Ну и в довершение, внезапно обнаружена ошибка. прелестно. Старый анекдот. Водитель выходит из автобуса и начинает чинить. Тут к нему подходит мальчик и говорит: Дядя я знаю, что у вас сломалось. Водитель кричит: Ну и что у меня сломалось??? Мальчик отвечает: Дядя у вас сломался автобус. вы простите за сарказм, просто поймите правильно. я делаю все что знаю, но элементарный сайт жрет раз в 20 больше чем должен. Это мой первый проект на АС3.. вот что я делаю. я зануляю все ссылки на объекты, которые мне больше не нужны. тоесть делаю этим переменным =null. Я отписываюсь от всех листенеров, и на всякий случай всегда юзаю weakReference. лоадерам всем я делаю unload. я положил там два класса. ими одними можно добиться невиданных тормозов, поверьте) |
ОК :)
Не ставьте интерактивные объекты над видео, обрежте FPS видео, как минимум вдвое, а лучше в четыре раза, можно и резолюцую так же. Упаси боже использовать фильтры и прозрачности над видео, вообще фильтры занимающие большую площадь будут тормозить, а так как видео все время заставляет перерисовывать картинку, то то, что вы сделали, это примерно по смыслу то же самое, что вместо того, чтобы отрендерить видео из 3Dmax'a один раз и проигрывать его, вы показываете процесс рендеринга. |
Цитата:
Если уж у вас Всё перерисовывается, то может быть уломать заказчика сделать фиксированное разрешение сайта? там 750х600, информации то мало. |
Красивый сайт. Жаль что тормозит
|
2wvxvw спасибо за ответ. да, я понимаю. но понижать качество видео больше некуда. фильтры и альфу я там и так почти не юзаю.. я понимаю что затрат ресурсов не избежать так чтоб уж совсем, но. скажите, между видео на таймлайне и классами videoPlayer и FLVVideoPlayer есть какаято разница в производительности? теоретически я думал еще о таком. это мог бы быть сиквенс из jpg, которые все бы присутсвовали в памяти постоянно, и в каждом следующем кадре атачился следующий и детачился предыдущий.. понимаете о чем я? они бы много весили, но трафик здесь не имеет особого значения. Важнее хоть както выиграть в производительности.
2Bgg. А оно не ресайзится. На что уламывать? 2kackbip. Спасибо. Это мы преодолеем. Добавлено через 3 минуты главная беда не проц, а 400 мб. ЧТО НЕ ТАК С МОИМИ КЛАССАМИ? |
посмотри в профайлере что жрет ресурсы.
|
в чем??
|
Flex / Flash Builder
|
уууу, я использую flash cs3.
Добавлено через 2 минуты сии продукты казались мне чемто профессиональным и пугающим. я открою в них проект который делал просто флешом? |
Четверый билдер вроде умеет импортировать флешевые проекты, но он еще в бете... если чесно - я не пробовал.
|
Насколько я знаю, даже вторая бета 4-го билдера еще не может этого делать.. У tkaChuck наверняка многое во *.fla-файле, а билдер пока-что их не умеет переваривать, хотя вроде в финалке должны это сделать:)
|
спасибо всем за ответы..
2N1KY: да, у tkaChuck там многое, уж вы мне поверьте) в любом случае, сейчас у меня чтото сложности со скачиванием билдера, и я плохо представляю как я в профайлере этом все увижу. но я обязательно. однако билдер билдером, а вопросы, перечисленные выше, остаются открытыми. |
Так что, на заднем плане видео?
А зачем вообще делать летящие облака при помощи видео? (к тому же оно и не так уж и заметно при просмотре сайта) Возьмите картинку(не очень большую...в крайнем случае под размер сайта...хотя я бы вам советовал просто меньший размер и allow smoothing). Сделайте картинку тайловой (благо с небом это не сложно) и пускайте банальный motion tween...когда картинка выходит за пределы сцены - возвращайте её на нулевую координату...чтобы не было эффектов разрыва просто дублируйте мувиклип с небом несколько раз и пусть они летят друг за другом...в любом случае места в оперативке это дублирование не займёт!Вот и всё! Ну и делайте всё остальное о чём уже сами писали...это лишним не будет. И не мешало бы регулятор громкости с кнопкой отключения звука поставить...я глубоко уважаю Jesse Cook'a но в данном случает вообще музыка ИМХО слишком навящевая и резкая для фона...под такое не почитаешь...попробуйте чтото более атмосферное. Для того чтобы посмотреть в Flash CS3 что жрёт ресурсы : File --> PublishSetting --> Ставите галочку Generate Size Report...с внешними классами не пробывал, но должно сработать! Ну и фильтры юзать при анимации столь массивных объектов ВООБЩЕ не надо..отключите все фильтры и увидите какой будет прирост в производительности! Если уж надо эффекты, в вашем случае лучше в PS прорисовать перед импортом. И в разделе RESUME пдф'ка выходит за пределы границ сайта, а это не есть красиво!Поправь! |
Если что, так видео можно отрендить в bitmapData последовательность, и потом уже показывать ее, а само видео остановить и выгрузить. Правда последовательность картинок, с таким разрешением, памяти порядком съесть должна. Или можно, как сказал Rosco, сделать обычным motion tween.
|
хм, это заговор? мне начинает казаться, что я попал в кошмар. на этом форуме есть только я и Капитан Очевидность на другом конце. не подумайте, я очень ценю вашу помощь, ребята.. помощь.
2Rosco: Дружище! Как неоднократно упоминалось, видео на фоне является обязательным условием. Не поверите, но мне приходило в голову, что елозить статической картинкой легче чем целым видео. спасибо за детальное описание технологии. места в памяти и правда не займет, Вы совершенно правы. Но боюсь при таком раскладе "Вот и все!" кричать буду не я, а заказчик). Что до саундтрека, полностью согласен. Я этого Cook'a так даже и не уважаю. Generate Size Report, как явствует из названия, генерит репорт о размере файла. рядом с ресурсами сие не стоит вообще никак. что именно должно сработать с внешними классами, останется тайной для всех нас. фильтры отключал. там только glow на вертикальных надписях. вообще никакой разницы. отключал все вообще. достаточно двух приведенных выше классов. создаем страницу тумбнейлов, переходим на другую (удаляем старую(и причем так удалем что мокрого места не остается по идее)), повторяем 10 раз, имеем висячий браузер. ЧТО НЕ ТАК С НИМИ РЕБЯТА??????? 2GentleFLASH: о, а вот за это реально большое спасибо! памяти терять нечего). тоетсь если я буду покадрово атачить секвенцию из битмапдаты, это будет машине проще чем показывать видео? разве сам по себе показ видео не есть аналогичный процесс? поясните пожалуйста, если не сложно.. и я это, как я отрендерю видео в такую секвенцию, да еще и незаметно для пользователя? еще ктото упоминал perlin noise. глазу заказчика милы облака, которые ближе и дальше от нас движутся с разной скоростью. можно оперировать несколькими твинами на разной скорости, мешать их multiply, но выходит довольно убого а тормозит тоже не слабо. большие прозрачные битмапы ездят, вы понимаете. от этого нас предостерегает даже хелп. но perlin noise - может быть чтото подобное можно генерить и это будет быстрей чем проигрывать видео??? я пока очень плохо себе представляю что это такое. Добавлено через 3 минуты Ну и делайте всё остальное о чём уже сами писали...это лишним не будет. [истерический смех].. тока не баньте за сарказм. |
Ну вы хоть бы дебаг билд скомпилировали, так же вообще сказать ничего нельзя кроме очевидхых вещей...
|
tkaChuck чтобы точнее отслеживать расходуемую память скачай класс Stats. А еще лучше поставь De MonsterDebugger, с ним ты сможешь еще детальнее оценить что вообще происходит в твоем коде, и поискать где конкретно у тебя забивается память.
|
2wvxvw спасибо за совет! дебаг билд, хмм.. я не знал что такое бывает. сейчас почитаю про него и сделаю.
2N1KY ооо ВАЩЕЕЕЕЕЕ, помему это то что я искал |
| Часовой пояс GMT +4, время: 09:57. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.