Для чего используется ЦП?

Общие вопросы о Unity3D

Для чего используется ЦП?

Сообщение wild_r 24 июн 2009, 23:49

Одно ядро ЦП загружено на 95-100 процентов, и это мне совсем не нравиться. Сцена большая и далеко неоптимальная. Есть прямой свет.

1) Физика - ее почти не на сцене, поэтому она отбрасываеться.
2) Обеспечение скриптов. Есть скрипт с показыванием ФПС, его отключение ничего не дает. Также скрипты из префаба FPS.
3) Свет?? Вроде должна видеокарта просчитывать.
4) Собственные нужды движка.

В общем - я никогда таким не интересовался. Сейчас цель - уменьшить загрузку ядра. Все остальные скрипты я буду пускать в несколько потоков.
wild_r
UNITрон
 
Сообщения: 220
Зарегистрирован: 16 апр 2009, 20:46
Откуда: Россия, Санкт - Петербург
  • ICQ

Re: Для чего используется ЦП?

Сообщение ffinder 24 июн 2009, 23:55

wild_r писал(а):Все остальные скрипты я буду пускать в несколько потоков.

интересно как ты будешь это делать?
ffinder
UNITрон
 
Сообщения: 192
Зарегистрирован: 26 мар 2009, 17:35
  • Сайт

Re: Для чего используется ЦП?

Сообщение wild_r 25 июн 2009, 00:13

http://www.rsdn.ru/article/dotnet/CSThreading1.xml

Вот, читай и удивляйся. Прикинь, работает... :ymparty: :-B

З.Ы. Можно даже вот такое устроить... :)) :D

wild_r
UNITрон
 
Сообщения: 220
Зарегистрирован: 16 апр 2009, 20:46
Откуда: Россия, Санкт - Петербург
  • ICQ

Re: Для чего используется ЦП?

Сообщение gnoblin 25 июн 2009, 00:57

Насколько я понял, Unity API - не "thread safe".

Пост Aras'а (второй сверху) http://forum.unity3d.com/viewtopic.php?t=18508.

Расскажете, как стабильно у вас будет работать это все). Должно вылетать в половине случаев (особенно при работе с Компонентами в отдельном потоке).

Но лично Я никаких тестов не проводил (*) .
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Для чего используется ЦП?

Сообщение gnoblin 25 июн 2009, 01:02

Может стоит просто разобраться в скриптах во всем проекте? К примеру, обрабатывать происходящие в Update() события не каждый кадр, а каждые 3-5?
Еще в OnGUI() ничего не стоит пихать, потому что она может вызываться несколько раз за кадр. :ympeace:
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Для чего используется ЦП?

Сообщение wild_r 25 июн 2009, 10:57

Убрал скрипт с показыванием фпс. Все так-же, в тяжелых кадрах загрузка до 32 процентов, в легких до 26. Понятно, что часть тратиться на обеспечение ГПУ работой, на сам рендер движка, что цифры выше и показывают. Но куда деваеться остальное время ЦП? Звука нет.

Все скрипты, которые остались - mouselook, firstpersoncontroller.
wild_r
UNITрон
 
Сообщения: 220
Зарегистрирован: 16 апр 2009, 20:46
Откуда: Россия, Санкт - Петербург
  • ICQ

Re: Для чего используется ЦП?

Сообщение Zaicheg 25 июн 2009, 11:10

Одно ядро ЦП загружено на 95-100 процентов

Все так-же, в тяжелых кадрах загрузка до 32 процентов, в легких до 26.

Стоит определиться в цифрах.
Стоит включить голову и понять, что существуют процессоры с 4 ядрами. И загрузка одного ядра полностью соотв. загрузке процессора на 25 процентов. Когда загуружено одно ядро и часть второго - это 32 процента.

Как бэ я указал Вам на недостаточно информации в вопросе (чёрт знает, сколько у Вас там ядер, и где Вы говорите о загрузке одного ядра, а где о всём ЦП), а Вы ругаться. Ай-ай-ай.
Хотя признаю, что особого смысла моё сообщение не несло. Так, мелкое уточнение для общей пользы.
Последний раз редактировалось Zaicheg 25 июн 2009, 14:54, всего редактировалось 1 раз.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Для чего используется ЦП?

Сообщение wild_r 25 июн 2009, 11:44

Zaicheg писал(а):
Одно ядро ЦП загружено на 95-100 процентов

Все так-же, в тяжелых кадрах загрузка до 32 процентов, в легких до 26.

Стоит определиться в цифрах.


Стоит включить голову и понять, что существуют процессоры с 4 ядрами. И загрузка одного ядра полностью соотв. загрузке процессора на 25 процентов. Когда загуружено одно ядро и часть второго - это 32 процента.

Иногда лучше молчать, чем говорить. Если у вас нет никаких дельных предложений.
wild_r
UNITрон
 
Сообщения: 220
Зарегистрирован: 16 апр 2009, 20:46
Откуда: Россия, Санкт - Петербург
  • ICQ

Re: Для чего используется ЦП?

Сообщение GrueGames 26 июн 2009, 13:14

У меня тоже квад, и загружено только 1 ядро.
На офф форуме пишут [unity 3D] не поддерживает многоядерность.

"If you write code that fully runs within .NET threads and does not touch Unity, then yes
Otherwise no, unity scripts all run in the same thread"

Это довольно грустно. Есть некоторые задачи (например организация игрового сервера) которые хорошо разделяются на отдельные потоки, а значит прирост на 4 ядернике был бы почти 4х кратный.
Аватара пользователя
GrueGames
UNITрон
 
Сообщения: 200
Зарегистрирован: 11 апр 2009, 16:42
Откуда: Samara, Russia
  • Сайт
  • ICQ

Re: Для чего используется ЦП?

Сообщение Neodrop 26 июн 2009, 13:18

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

Re: Для чего используется ЦП?

Сообщение wild_r 26 июн 2009, 20:06

Вот, отлично - мы выяснили что работа с ресурсами идет в других потоках. Но куда тогда девается время ЦП?

З.Ы. Понял. Судя по всему, напрямую зависит от количества объектов на сцене. И мне кажется, что все дело в просчете видимости объектов камерой, ибо экспериментируя с OnBecomeVisible я заметил что просчет видимости происходит похоже каждый проход рендера. А это затратно. Но это только мои предположения.
Последний раз редактировалось wild_r 26 июн 2009, 20:25, всего редактировалось 1 раз.
wild_r
UNITрон
 
Сообщения: 220
Зарегистрирован: 16 апр 2009, 20:46
Откуда: Россия, Санкт - Петербург
  • ICQ

Re: Для чего используется ЦП?

Сообщение Neodrop 26 июн 2009, 20:13

Загрузка ЦП растёт пропорционально дравколлам. Это единственное, что я точно заметил.
Видать на подготовку рендеринга оно и уходит.
Если у меня 200-300 дравколлов, то загрузка одного ЦП не более 15-20 % если более 1000 (точно не мерял) то выростает до 90-100% и так и держится постоянно. :-?
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Для чего используется ЦП?

Сообщение romeo_ftv 26 июн 2009, 21:27

Еще скелетная анимация выполняется на ЦПУ в отдельном потоке (может даже не одном).
romeo_ftv
UNIт
 
Сообщения: 88
Зарегистрирован: 12 апр 2009, 12:33

Re: Для чего используется ЦП?

Сообщение wild_r 26 июн 2009, 21:40

Да, теперь все ясно. Сейчас смотрю на многопоточность, завтра или сегодня напишу о резалтах и стабильности. Для теста планирую пока счетчик фпс стандартный перевести во второй поток. Все-так мне кажется что все нормально будет с потоками, ибо в .NET есть все - от семофоров, до даемонов (?) и приоритета.

Хотя пока возникла трабла с видимостью фунции Update движком, если она в другом классе.
wild_r
UNITрон
 
Сообщения: 220
Зарегистрирован: 16 апр 2009, 20:46
Откуда: Россия, Санкт - Петербург
  • ICQ

Re: Для чего используется ЦП?

Сообщение Neodrop 26 июн 2009, 23:14

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

След.

Вернуться в Общие вопросы

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 12