Войти
ПрограммированиеФорумОбщее

Оптимизация C++ для игр (комментарии)

Страницы: 1 2 3 4 5 Следующая »
#0
7:50, 16 фев. 2011

Оптимизация C++ для игр (комментарии)

Это сообщение сгенерировано автоматически.


#1
7:50, 16 фев. 2011

Статья так и останется "не опубликованной"? =(

#2
10:53, 16 фев. 2011

Неплохая статья по оптимизации. ИМХО, правда, автор слегка перегибает с использованием своего менеджера памяти и отказа от строк и некоторых stl-контейнеров. В настоящее время компьютеры имеют уже достаточные ресурсы, чтобы даже в играх позволить писать программу в первую очередь удобную людям, а не машине.

#3
11:04, 16 фев. 2011

inkooboo
> и отказа от строк и некоторых stl-контейнеров.

я предвижу будущее - будут жаркие споры :)

#4
11:38, 16 фев. 2011

Спорная статья. Некоторые пункты в духе "компилятор совсем дурак". Со многим согласен, но некоторые оптимизации уж как-то не уважительны к разработчикам компиляторов.

> - Использование списков инициализации

Есть пример, где реально была бы разница?

> - Используйте пре-инкремент (++i) вместо пост-инкремента (i++)

Можно пример, где пре-инкремент будет быстрее, чем пост-инкремент?

> - Избегайте операторов, возвращающих результат по значению

Писать уродский код, только потому, что есть на планете компилятор написанный кривыми руками...... Я не согласен.

> Виртуальные функции

Хотел бы я посмотреть на игру, в которой был бы ботлнек в виртуальных функциях. :)

> чем меньше программа, тем она быстрее

Это заблуждение.

#5
12:23, 16 фев. 2011

> но будет лучше, если вы переборете свою гордость и напишете более уродливый код

подавился конфетой на этой фразе.

#6
12:46, 16 фев. 2011

Опечатка:
Если вы хотите избежать копирования объектор, то сделайте operator= закрытым.

#7
13:32, 16 фев. 2011

> Использование списков инициализации
+/-
разницы почти нет, но это просто хороший тон

> Используйте пре-инкремент (++i) вместо пост-инкремента (i++)
+1
автор не упомянул какие именно переменные а использовал i подразумевая int, так вот, int'у абсолютно не важно что вызывается префиксный или постфиксный инкремент, просто инструкция add будет находится до/после использования переменой, так делает любой компилятор даже без оптимизации
тебе надо было упомянуть что это имеет смысл только для сложных, экспортируемых классов с перегруженным оператором

правка:а нет, упомянул, извиняюсь

>Избегайте операторов, возвращающих результат по значению
-1
> цена вызова дополнительного конструктора и создания копии объекта вектора обычно очень высока.
не более чем спички в киоске

> Используйте легковесные конструкторы
+/-
смысл есть только на очень часто создаваемых объектах для которых конструкторы то почти и не нужны

>Виртуальные функции
+/-
да виртуальными функциями луче слишком не увлекается, по этой же причине osg не подходит для игр, но это решать надо архитектурными решениями, а не какими то костылями на корявый пример что указан у автора

> Так как память ограничена и чем меньше программа, тем она быстрее, нужно стараться делать исполняемые файлы настолько маленькими, насколько это вообще возможно.
дезинформация
> Обработка и использование исключений порождает дополнительный код, поэтому необходимо избегать этого механизма
спасибо за совет *сарказм*

>Библиотека STL
-3
все это один призыв использовать всегда обычные векторы, т.е. толку нет

PS
я думаю автор начал прогать не более года назад и по совместительству начинающий кэп

#8
13:44, 16 фев. 2011

ashujon
> -1
> автор не упомянул какие именно переменные а использовал i подразумевая int, так
> вот, int'у абсолютно не важно что вызывается префиксный или постфиксный
Там же написано:

Конечно, для целых типов нет существенной разницы, но для пользовательских типов
она может стать колоссальной. Поэтому следует использовать пре-инкремент, если есть возможность выбора.

З.Ы. нормальная статья, +1 за публикацию

#9
13:50, 16 фев. 2011

Кукурузо!
Ну вот пусть автор подкрепит эти заявления примером кода. Я вот реально никогда не сталкивался с такой проблемой и мне интересно, что нужно сделать, чтобы была тут разница.

#10
14:22, 16 фев. 2011

Начал читать статью и сразу разорвало мозг

if (arg* = 0)
Что это значит?

#11
14:30, 16 фев. 2011
> if (arg* = 0)
я сказал не более года? я имел ввиду не более месяца :)
#12
14:34, 16 фев. 2011

Executor
> Ну вот пусть автор подкрепит эти заявления примером кода.
Deft в данном случае не автор, а переводчик... мопэд не его, он просто разместил объяву :))

#13
14:41, 16 фев. 2011

Больше тестов, меньше голословности.
Много утверждений, требующих примера-доказательства.

#14
14:44, 16 фев. 2011
x = y++

Ну, признавайтесь, кто так делает не для POD типов? :)

Страницы: 1 2 3 4 5 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.