Какое влияние на производительность оказывает «дробление» математических вычислений на несколько переменных? - PullRequest
0 голосов
/ 15 апреля 2020

Отказ от ответственности:

  • Я гуглил это, но это сложный вопрос для формулировки и получения результатов. Похоже, Google подумал, что я почему-то искал статьи о детской психологии.

  • Мне известно, что в большинстве случаев этот уровень производительности не стоит рассматривать, и читаемость кода будет более важный. Я спрашиваю об этом в контексте высокопроизводительных приложений, таких как шейдерный код.

Вопрос: Проще говоря, есть ли влияние на производительность расширения или "разбивания" , "математическое вычисление на несколько" шагов ", сохраняя каждый шаг в переменной?

Возьмите два примера (код шейдера, который образует спираль):

//Expanded
float dist = distance(uv, vec2(0.0, 0.0));
float radial = atan(uv.y, uv.x);
float wave = sin(dist + radial);
float col = wave;

//Single Line
float col = sin(distance(uv, vec2(0.0, 0.0)) + atan(uv.y, uv.x));

Я знаю, что может быть прирост производительности от таких вещей, как сглаживание циклов и т. д., и хотя мои инстинкты говорят мне, что, очевидно, первый занимает больше памяти, даже если он записан в виде одной строки, каждый «шаг» должен храниться где-то правильно?

Для удобства чтения я, вероятно, поместил бы над ним комментарий, разбивающий вычисления, но если предположить, что этот код выходит из области видимости сразу после выполнения, будет ли увеличение производительности при записи его в одну строку?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...