Улучшенный HeadLookController

Оптимизация кода.

Улучшенный HeadLookController

Сообщение Neodrop 23 май 2010, 09:09

Малость улучшенный вариант. Спор ниже привёл к тому, что сперва я сделал неверные выводы. Тем не менее, так чуток быстрее.
Надо бы будет написать вспомогательный скриптик... Неудобно кости назначать. :-?
У вас нет доступа для просмотра вложений в этом сообщении.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Улучшенный HeadLookController

Сообщение Neodrop 23 май 2010, 12:35

Массированные опыты, проведённые с Гноблином, показали, что виноват класс BendingSegment. Объявление переменных этого типа кормит GC досыта. Потому что класс не реализует интерфейс IDispasable.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Улучшенный HeadLookController

Сообщение Agenda 23 май 2010, 17:53

Простите, а что вы там диспозить то хотите?
Agenda
UNец
 
Сообщения: 30
Зарегистрирован: 13 апр 2010, 07:57

Re: Улучшенный HeadLookController

Сообщение Neodrop 23 май 2010, 18:55

Может быть умные книжки не напишут что, но в той версии MONO, что использована в [unity 3D] Unity, такие классы диспозить жизненно необходимо. Не видите разницы в работе GC ?
А если видите, то не задавайте больше необдуманных вопросов. ;;)
Тем более, я ничего там и не диспозил, просто вынул переменные в поля.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Улучшенный HeadLookController

Сообщение Agenda 23 май 2010, 20:34

Есть распространенное и ошибочное мнение об фантастичности интерфейса ай_диспосайбл, мол помогает гарбедж коллектору в сборке мусора и порчу мол снимает
с класса одним своим присутствием :)
Но это заблуждение.

Попробовал на тестовой сцене с примера поработать с 9тьмю персонажами. Спустя 3-5 секунд скачков в гарбежд коллекторе не наблюдается, как в оригинале так и у вашем
импруве. Первые 5 секунд скачки были в обоих вариантах.

Собственно оно и не удивительно, вынести переменные за тело цикла уж никак не поможет в случае классов (память то выделять нужно) так и структур, последние банально
размещены на стеке и к коллектору никаким боком не относятся - удаляются в следствии разворачивания стека.
Agenda
UNец
 
Сообщения: 30
Зарегистрирован: 13 апр 2010, 07:57

Re: Улучшенный HeadLookController

Сообщение Neodrop 23 май 2010, 20:38

Я привёл два сравнительных графика. В моём случае результаты всегда стабильны и положительны в отношении исправленного варианта.
Не нравится - не используйте, но разводить тут теоретическую полемику ни к чему. Откройте новую тему, касательно коллектора и стеков.
Будете продолжать тут - вычищу все комменты (вместе со своими), как не имеющие отношения к теме.

З.Ы. Очень вероятно, что в [unity 3D] Unity 3.0, (где наконец-то обещали MONO 2.6) этих проблем вовсе не будет. Так что особо и говорить не о чем. :D
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Улучшенный HeadLookController

Сообщение Neodrop 23 май 2010, 21:03

Ха-ха. Я лошара. Это пики от GUI, кстати. Но, тем не менее, чутка я-таки скрипт ускорил, хоть и не существенно. :ymparty:
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Улучшенный HeadLookController

Сообщение Neodrop 23 май 2010, 21:23

Перезалил ту версию, которую я сейчас использую. При работе в броузере, с ней нет рывков (просадок производительности, когда несколько ботов одновременно начинают смотреть на тебя). Так что, какой то профит, всё-таки получился. Вообще, работа с броузером всегда как хотьба по льду - не ясно, где провалишься. :-?
Вот демка.

HTML код для вашего блога :
Код: Выделить всё
<script language='javascript' type="text/javascript"> document.write("<iframe marginheight='0' src='http://unity3d.ru/distribution/player.php?url=http://www.unity3d.ru/composition/radsim/testAnim.unity3d&w=1024&h=768&t=true&preview=1' height='"+(768+30)+"' width='1024' frameborder='0' scrolling='no'></iframe>"); </script>
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт


Вернуться в Код

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1