Страница 1 из 1

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

СообщениеДобавлено: 16 окт 2016, 12:17
Diab10
Всем привет! :)
Нужен совет, как можно ускорить такую строку кода?

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

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

Может быть есть какие то специальные библиотеки, или ещё какие приёмы?

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

СообщениеДобавлено: 16 окт 2016, 12:38
Cr0c
Беда псевдокода в том, что практическая реализация может в корне отличаться от него. Может сам алгоритм быть виноват, может недостаток абстракции или избыточное усложение в наличии. Возможность кеширования, в конце концов.

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

СообщениеДобавлено: 16 окт 2016, 14:49
Diab10
Да, наверно :)

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

Синтаксис:
Используется 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;
    }

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

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

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

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


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

Спасибо, тема закрыта, но если есть ещё способы оптимизации операций с векторами - было бы интересно послушать :)

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

СообщениеДобавлено: 16 окт 2016, 18:41
Diab10
А вот, нашёл что хотел, но не мог вспомнить где оно, мб пригодится кому: viewtopic.php?f=87&t=21853