Форум программистов, компьютерный форум CyberForum.ru

Оптимизация программ - C++

Восстановить пароль Регистрация
 
miriganua
130 / 101 / 4
Регистрация: 05.02.2012
Сообщений: 241
10.06.2012, 21:05     Оптимизация программ #1
Возник такой вопрос. Допустим у меня в функции используется часто некоторое выражение(например, length/2, а length - параметр функции). Как я понимаю каждый раз значение этого выражения будет вычисляться, а это какое-никакое время. Я думаю может лучше завести отдельную переменную для хранения значения этого выражения. Правильно ли это?

Пример - рисование параллелепипеда в начале координат на openGl:

C++
1
2
3
4
5
6
7
8
9
10
11
void drawParallelepiped(float length, float width, float height)
{
glBegin(GL_QUADS);
glvertex3f(length/2, width/2, height/2);
glvertex3f(length/2, -width/2, height/2);
glvertex3f(-length/2, -width/2, height/2);
glvertex3f(-length/2, width/2, height/2);
 
...........
glEnd();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2012, 21:05     Оптимизация программ
Посмотрите здесь:

Оптимизация C++
C++ Оптимизация вычислений
Оптимизация кода C++
Серьезная оптимизация C++
C++ Оптимизация кода
оптимизация обмена C++
Оптимизация программы C++
C++ Оптимизация программы
C++ Оптимизация кода (C++)
C++ Оптимизация кода
Оптимизация цикла for C++
оптимизация C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
10.06.2012, 21:19     Оптимизация программ #2
Цитата Сообщение от Игорь Миронюк Посмотреть сообщение
Как я понимаю каждый раз значение этого выражения будет вычисляться, а это какое-никакое время. Я думаю может лучше завести отдельную переменную для хранения значения этого выражения. Правильно ли это?
Правильно. Если выражение потребуется хотя бы дважды, то дважды его считать = дважды тратить время на его вычисление, а вычислить заранее и запомнить = потратить время лишь 1 раз. Но без фанатизма, если таких оптимизаций будет слишком много, по количеству значений и переменных для них, то получишь обратный эффект на переполнении кэша, а то и оперативы.

Добавлено через 4 минуты
Поставь профайлер и смотри, сколько времени выполняется каждая функция и как часто вызывается. На нём и проверяй свои идеи. И в первую очередь оптимизируй те функции, на которые с учётом всех обращений к ним приходится больше всего процессорного времени.
miriganua
130 / 101 / 4
Регистрация: 05.02.2012
Сообщений: 241
10.06.2012, 21:37  [ТС]     Оптимизация программ #3
А что такое профайлер?
Yandex
Объявления
10.06.2012, 21:37     Оптимизация программ
Ответ Создать тему
Опции темы

Текущее время: 15:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru