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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
miriganua
131 / 102 / 4
Регистрация: 05.02.2012
Сообщений: 241
#1

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

10.06.2012, 21:05. Просмотров 378. Ответов 2
Метки нет (Все метки)

Возник такой вопрос. Допустим у меня в функции используется часто некоторое выражение(например, 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();
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2012, 21:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Оптимизация программ (C++):

Оптимизация производительности программ на С++ - C++
Какие более известные узкие места есть в программах на С++? Из того что я знаю: 1. Должен быть хороший алгоритм 2. Как можно меньше...

оптимизация - C++
какие 5 способов оптимизации?

Оптимизация - C++
Мне нужно на определенную часть программы дать указание компилятору не оптимизировать эту часть. Может кто знает как это сделать???? ...

Оптимизация - C++
Как-нибудь можно уменьшить размер кода, т.е. сократить количество строк данного кода: #include <cmath> #include "windows.h" ...

Оптимизация - C++
Условие задачи: Как известно, красить забор Тому Сойеру помогали многочисленные друзья. Каждый друг покрасил неcколько подряд идущих...

Оптимизация программы - C++
#include<std_lib_facilities.h> #include<conio.h> void moveHorse(int &, int , int , int, int &, int &, int &);//переставляет коня ...

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

Добавлено через 4 минуты
Поставь профайлер и смотри, сколько времени выполняется каждая функция и как часто вызывается. На нём и проверяй свои идеи. И в первую очередь оптимизируй те функции, на которые с учётом всех обращений к ним приходится больше всего процессорного времени.
1
miriganua
131 / 102 / 4
Регистрация: 05.02.2012
Сообщений: 241
10.06.2012, 21:37  [ТС] #3
А что такое профайлер?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2012, 21:37
Привет! Вот еще темы с ответами:

Оптимизация программы - C++
Условие : Даны две действительные квадратные матрицы порядка n. Получить новую матрицу прибавлением к элементам каждого столбца первой...

Оптимизация цикла for - C++
Исходные данные: имеется цикл for, прерывание которого невозможно(должен выполнить все итерации). #include <iostream> int main() {...

Оптимизация программы - C++
Помогите оптимизировать программу, не могу сам. #include <iostream> #include <conio.h> using namespace std; int main() ...

оптимизация обмена - C++
помогите пожалуйста немного переделать код программы! вот условие: Дан файл типа BYTE размером не менее 256 Кбайт. Скопировать...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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