Оптимизировать строку кода, вектора

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

Оптимизировать строку кода, вектора

Сообщение Diab10 16 окт 2016, 12:17

Всем привет! :)
Нужен совет, как можно ускорить такую строку кода?

Псевдо-код:
Синтаксис:
Используется csharp
(Vector3 + Vector3 - Vector3) * int

все переменные разные. c#

Может быть есть какие то специальные библиотеки, или ещё какие приёмы?
Последний раз редактировалось Diab10 18 окт 2016, 11:46, всего редактировалось 1 раз.
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3399
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023

Re: Оптимизировать строку кода, вектора

Сообщение Cr0c 16 окт 2016, 12:38

Беда псевдокода в том, что практическая реализация может в корне отличаться от него. Может сам алгоритм быть виноват, может недостаток абстракции или избыточное усложение в наличии. Возможность кеширования, в конце концов.
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 2972
Зарегистрирован: 19 июн 2015, 13:50
Skype: i_cr0c

Re: Оптимизировать строку кода, вектора

Сообщение Diab10 16 окт 2016, 14:49

Да, наверно :)

В скайпе ребята помогли, пришёл к такому варианту:

Синтаксис:
Используется csharp
    Vector3 temp;
    public Vector3 getPosWorld4()
    {
        temp.x = (pos.x + step.x - jump.x) * sizePatch;
        temp.y = (pos.y + step.y - jump.y) * sizePatch;
        temp.z = (pos.z + step.z - jump.z) * sizePatch;
        return temp;
    }


Вот тут скрипт с разными вариантами: http://pastie.org/10944032

pos - постоянно разная должна быть.
sizePatch - постоянна, jump и step - редко меняются


Раньше было так:
Синтаксис:
Используется csharp
    public Vector3 getPosWorld()
    {
        return (pos + altTreesData.altTreesPatch.step - altTreesData.altTreesManager.jump) * altTreesData.altTrees.sizePatch;
    }
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3399
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023

Re: Оптимизировать строку кода, вектора

Сообщение Cr0c 16 окт 2016, 14:58

(step-jump)*SizePatch кешировать. Например в сеттере. Хотя я не думаю, что это даст заметный прирост производительности. А тот Ваш пример, в принципе то же самое, что было изначально. Не думаю, что оверхед такой значительный на векторном сложении и/или умножении :)
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 2972
Зарегистрирован: 19 июн 2015, 13:50
Skype: i_cr0c

Re: Оптимизировать строку кода, вектора

Сообщение Diab10 16 окт 2016, 18:32

Cr0c писал(а):(step-jump)*SizePatch кешировать. Например в сеттере. Хотя я не думаю, что это даст заметный прирост производительности. А тот Ваш пример, в принципе то же самое, что было изначально. Не думаю, что оверхед такой значительный на векторном сложении и/или умножении :)


Да, можно было бы, прирост был бы. Переделал всё, теперь вообще этой конструкции нет, +7 к ФПС прибавило :D

Спасибо, тема закрыта, но если есть ещё способы оптимизации операций с векторами - было бы интересно послушать :)
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3399
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023

Re: Оптимизировать строку кода, вектора

Сообщение Diab10 16 окт 2016, 18:41

А вот, нашёл что хотел, но не мог вспомнить где оно, мб пригодится кому: viewtopic.php?f=87&t=21853
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3399
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023


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

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

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