Size: a a a

Unity Floodилка

2020 April 02

AS

Anton Smetanin in Unity Floodилка
Гравитация
источник

AS

Anton Smetanin in Unity Floodилка
Ну типа тогда если хочешь в FixedUpdate обновлять позиции, придётся извращаться как-то и сглаживать
источник

AS

Anton Smetanin in Unity Floodилка
Либо забить и пусть дёргается
источник

AN

Arthur Novikov in Unity Floodилка
Anton Smetanin
Ну типа тогда если хочешь в FixedUpdate обновлять позиции, придётся извращаться как-то и сглаживать
А юнити ограничивает максимальный фпс?
источник

AN

Arthur Novikov in Unity Floodилка
1. Почему right if - 1-2 такта, а wrong if - 10-20?
2. int / int дольше чем float / float?
3. Присвоение - это memory write?
4. Вызовы функции - 50 тактов - из этого следует что не стоит слишком разбрасывать код по функциям? Или компилятор потом это оптимизирует?
источник

AN

Arthur Novikov in Unity Floodилка
И есть ли разница в производительности в этих двух вариантах?

if (A && B)

if (A) {
   if (B) ...
}

Или компилятор это тоже оптимизирует?
источник

AS

Anton Smetanin in Unity Floodилка
Arthur Novikov
А юнити ограничивает максимальный фпс?
Нет
источник

AS

Anton Smetanin in Unity Floodилка
Ну можно ограничить через Application.targetFrameRate
источник

AS

Anton Smetanin in Unity Floodилка
Arthur Novikov
И есть ли разница в производительности в этих двух вариантах?

if (A && B)

if (A) {
   if (B) ...
}

Или компилятор это тоже оптимизирует?
Это одно и то же)
источник

AS

Anton Smetanin in Unity Floodилка
Мне кажется, оно в один машинный код скомпилируется
источник

AN

Arthur Novikov in Unity Floodилка
Anton Smetanin
Это одно и то же)
Ну в первом варианте один иф, а во втором - два)
источник

AS

Anton Smetanin in Unity Floodилка
Arthur Novikov
1. Почему right if - 1-2 такта, а wrong if - 10-20?
2. int / int дольше чем float / float?
3. Присвоение - это memory write?
4. Вызовы функции - 50 тактов - из этого следует что не стоит слишком разбрасывать код по функциям? Или компилятор потом это оптимизирует?
1. Потому что он уже выполнил один код, а ему надо откатываться и другой выполнять
2. int / int быстрее по идее чем float / float
3. Если в локальную переменную, то может быть как память, так и регистр. Если в поле класса, то это память, да
4. Да, вызовы функций дорогие
источник

AS

Anton Smetanin in Unity Floodилка
Ну там, конечно ещё зависит от того, какая функция
источник

AN

Arthur Novikov in Unity Floodилка
Вот свойства например работают типа как функции
источник

AS

Anton Smetanin in Unity Floodилка
Компилятор может инлайнить вызовы функций, но это не так часто происходит
источник

AS

Anton Smetanin in Unity Floodилка
Arthur Novikov
Вот свойства например работают типа как функции
Ага
источник

AS

Anton Smetanin in Unity Floodилка
Ну свойства, я думаю, инлайнятся обычно
источник

AN

Arthur Novikov in Unity Floodилка
if - else
- Тут я думал, что проверяется один иф, и в зависимости от результата (true / false) выполняется левая или правая ветка. Но не думал, что разница в 10 раз.
источник

AN

Arthur Novikov in Unity Floodилка
Anton Smetanin
Ну свойства, я думаю, инлайнятся обычно
В чём-то у них должно быть преимущество
источник

AS

Anton Smetanin in Unity Floodилка
Arthur Novikov
В чём-то у них должно быть преимущество
В чём?)
источник