Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Garbage Collector возможно ли отключить? (http://www.flasher.ru/forum/showthread.php?t=121202)

MonkDead 10.02.2009 09:27

Garbage Collector возможно ли отключить?
 
Собственно возникла проблема эта "дрянь" запускается каждые 2 секунды. Раньше не дождаться было когда он сработает (Flash Player 9) сейчас из-за него каждые 2 секунды fps падает с 50 до 18 :(((. Сами понимаете как это выглядит.

silin 10.02.2009 10:47

может лучше не давать "eй" повода так часто запускаться?
иначе рискуешь fps вовсе в ноль загнать..

MonkDead 10.02.2009 11:31

Не давать поводу ммм, звучит неплохо, но на практике бррр.
1) Данный проект раньше на 9 player'е не вызывал таких проблем.
2) Когда в проекте более 3000 классов проблематично не давать повода.
3) Поводом могут служить лишь временные ассоциативные массивы. А куда без них, удваивать используемую память? Для сравнения сейчас памяти жрет 900 мегов. Как становится 901 метр GC срабатывает, из-за 1 метра чистить память ЛОЛ. Причем не принципиально 900 метров или 2, каждый лишний метр будет чистить(

_Smirnoff 10.02.2009 11:33

Что за проект, если не секрет? 900 мб это прямо серьезно.

MonkDead 10.02.2009 11:42

3D движок, а 900 метров жрет 1.5 миллиона полигонов (целый уровень из WoW(город Ironforge)). Вот такой вот изврат :)))

BlooDHounD 10.02.2009 11:50

удачи )

MonkDead 10.02.2009 11:52

А что удачи все сделано, только проблема с GC.

Psycho Tiger 10.02.2009 17:25

Не по теме, но можно взглянуть на это?
50 фпс и 1.5 миллиона полигонов (!!!) на флеше... Если это так - вы уже миллионер.

ramshteks 10.02.2009 17:55

да действительно, я в своем то движке еле добился 30фпс для 1500 полигонов, а у вас там такое...

†‡Paladin‡† 10.02.2009 17:59

Чето мне тоже с трудом верится. Скрины в студию.

etc 10.02.2009 18:00

Интересно, сколько времени вы уже пишете проект, что у вас там 3000 классов? :)
Не, ну выжрать 900 метров памяти не вопрос, просто это не GC, а самый банальный своп на винт, потому что реальной памяти, я так понимаю, всего гигабайт.

ramshteks 10.02.2009 18:33

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

G72RU 10.02.2009 20:01

2 ramshteks, вы слишком недоверчивы.

darksranger 10.02.2009 20:16

да а как тут быть доверчивым, если вам говорят что сделали WOW при 1.5 милиарде полигонов с fps 50
как тут верить ?

CEBEP 10.02.2009 20:26

Да в Адоби с трудом 700 классов выжали :D А тут аж 3000!

etc 10.02.2009 20:29

Я вот не представляю, что там можно в 3000 классов засунуть.

ramshteks 10.02.2009 21:09

Цитата:

Сообщение от __etc (Сообщение 797321)
Я вот не представляю, что там можно в 3000 классов засунуть.

вселенную WoW очевидно во всех ее проявлениях :D4

MonkDead 10.02.2009 22:44

1) Классов самого движка около 200, все остальные это классы полигональных объектов в 3 уровнях детализации.
2) Вы понимаете что на экран выводится не 1.5 милиона полигонов каждый кадр. В пирамиду видимости попадает от 5000 до 20000 полигонов. И после многих алгоритмов таких как: Frustum, View Cliping, Shadow Cliping, адаптивной триангулиции, перспективной коррекции и т.д. во ViewPort рисуется в среднем 6000 - 8000 треугольников.
3) Соответственно нет динамических теней думаю понятно почему (Нет аппаратной поддержки). Все тени выпечены в текстуры.
4) Первый рабочий запуск движка был произведен спустя 3 недели написания проекта. А так уже месяца 3 занимаюсь оптимизацией (видимо последствия оптимизации и вызвали проблему GC), добавлением новых алгоритмов, переписыванием старых.
5)
Цитата:

Не, ну выжрать 900 метров памяти не вопрос, просто это не GC, а самый банальный своп на винт, потому что реальной памяти, я так понимаю, всего гигабайт.
Разумеется тестил на разных машина и с 2 - 6 гигами памяти. Весь день провел отключая алгоритмы в поисках утечки памяти. Нашел много таких мест, но тут вопрос благодаря такой архитектуре как я сделал и добился скорости и убивать ее из-за GC обидно.


Вообщем пока займемся экспериментами, как всегда отладка отладка.
Насчет скринов сайт откроется в ближайшее время, но как вы понимаете WoW город я не выложу, там одних текстур на 120 мегов. Такой объем для демки в инете много. + авторские права Blizzard :) - может они и разрешат как демку выложить, но это проблематично уже связывался там согласие должны дать все кто создавал модели, текстуры.

ramshteks 10.02.2009 22:48

ох, сомнительно сомнительно, ну сделайте демку, не вов, а просто так, чтоб заценить. Насколько мне известно и по моему опыту, флеш не способен на такое.

MonkDead 10.02.2009 22:53

Flash не способен перерисовать область с разрешением 800x600 ? Делаю демки не WoW ), времени много на это уходит я не 3D модельер (

CEBEP 10.02.2009 23:16

Я как понимаю вся контора Альтернативы нервно курит в сторонке со своими 2000 полигонами...

Цитата:

Вообщем пока займемся экспериментами, как всегда отладка отладка.
Насчет скринов сайт откроется в ближайшее время, но как вы понимаете WoW город я не выложу, там одних текстур на 120 мегов. Такой объем для демки в инете много.
не, не отмазывайтесь! Дайте хоть скриншот, I want to Believe :)

etc 10.02.2009 23:19

MonkDead, вообще говоря, у большинства тех, кто связывался с флешовым GC ситуация обратная, он как раз таки крайне редко срабатывает, засасывая всё бОльшие объемы памяти и не высвобождая то, что давно удалено движком.

MonkDead 10.02.2009 23:27

У Альтернативы BSP дерево на нем далеко не уедешь (для открытых пространств и динамических сцен совсем не катит). Хорошо через пару часиков залью пару скринов и кину ссылки.

Насчет GS вычитал тут в гугле он вызывается каждые 310 сек и если есть что удалять он удаляет, а в следующей раз он вызывается уже через 300 сек и так далее. Незнаю насколько это правда выглядит сомнительно, но черт этих Adobo'вцев знает.

Добавлено через 1 минуту
etc Я сам постоянно маты ложил на GC что он "нихрена" не собирал мусор, а тут ппц.

dimarik 11.02.2009 00:40

Мдя... Хочу серьезного сэма на флеше! Порадуйте, маэстро, хотя бы скринами вов.

MonkDead 11.02.2009 00:57

Вот собственно пару скринов:
http://s49.***********/i125/0902/da/b5c17bc73756.jpg
http://s49.***********/i125/0902/da/b5c17bc73257.jpg

Nirth 11.02.2009 01:11

Все усиленно ржали над автором 2 страницы =) Как говорится смеется тот, кто смеется последним.

@MonkDead можно с вами познакомится =)?

MonkDead 11.02.2009 01:18

:) Я на форум зашел не для пантов, а решит задачу с которой не сталкивался. Люди существа недоверчивые и это правильно, я и сам бы месяца 4 назад сказал бы что это не реал, но сутки напролет приводят к результату!!!
Я рад знакомствам и общению с коллегами по цеху :).

badun 11.02.2009 01:25

все-таки демку какую-нибудь посмотреть гораздо интереснее было бы
имеется возможность?

_Smirnoff 11.02.2009 01:27

2 МonkDead, дай знать как появятся первые WoW город в нете. Прямо заинтреговало. Борьба с памятью - это война.

Nirth 11.02.2009 01:28

@Badun не факт что автор имеет право выкладывать демки/прототипы. Я бы не выложил до паблик беты 99% =)

badun 11.02.2009 01:32

ну спросить то не грех )

MonkDead 11.02.2009 01:35

Демки пока не выложу! У каждого руки чешутся декомпилятором пройтись :) Зарегистрирую авторские права тогда и демки появятся, а пока ждемс сайта, доков статей ну разумеется если кому интересно :)

Цитата:

МonkDead, дай знать как появятся первые WoW город в нете. Прямо заинтреговало. Борьба с памятью - это война.
Память не так критична как скорость. Если выбор будет стоят использовать 300 мегов памяти и получать 30fps или 600мегов и получать 50fps мой выбор очевиден.

_Smirnoff 11.02.2009 01:40

Можешь чтобы не чесались, пройтись обфускатором. На моем опыте производительность не связана с мемориликами.

MonkDead 11.02.2009 01:51

Связана :) Когда мы проводим предрасчеты и храним их, мы жрем память, но снижается количество динамических расчетов.
Простой пример: расчитывать нормали к полигонам каждый кадр или расчитать нормали к полигонам в глобальной системе координат записать их, а каждый кадр сравнивать их с нормалью камеры.

Ради интереса проводил эксперимент:
1) Динамический расчет нормалей для 5000 полигонов занимал 14мс
2) Предрасчет и сравнение с нормалью камеры тех же 5000 полигонов занимал менее 1мс.
Разница в используемой памяти отличалась в 2 раза.

Nirth 11.02.2009 01:53

Пожалуйста хватит клянчить демки.

Яски 11.02.2009 07:36

млн полигонов это круто. А сколько человек занимается движком не скажете?
Что-то с памятью у вас не так это точно, потому что хранение 5000 нормалей не может забирать в два раза больше памяти.

MonkDead 11.02.2009 07:46

Цитата:

А сколько человек занимается движком не скажете?
Я один(.

CEBEP 11.02.2009 10:58

MonkDead, браво!
Простите мой скептицизм! Теперь я belive в чудеса :)

$mival 11.02.2009 11:45

да какие скрины, даешь флеш!)

_Smirnoff 11.02.2009 12:07

Конечно, что-то конкретное можно сказать, после демо в формате swf.:)


Часовой пояс GMT +4, время: 16:52.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.