о методах оптимизации и работы с памятью в C++

Mar 06, 2012 11:39


Хочу поделиться своим опытом по программированию и работе с памятью. Уже давно пришел к выводу, что для того, чтобы написать эффективный код (который будет быстро работать) нужно учитывать в первую очередь размещение объектов в памяти. Особенно это проявляется в методе программирования Data oriented design. Это метод, при котором в первую очередь ( Read more... )

Leave a comment

Comments 6

binf March 20 2013, 14:56:40 UTC
Самый лучший метод "оптимизации" - отказаться от с++ и перейти на нечто человеческое, например, Common Lisp или OCaml,

Reply

filoxsee March 20 2013, 15:28:41 UTC
Вы по своему правы... Каждый язык имеет определенную область применения. Если целью будет скорость разработки ПО, то С++ это будет действительно не лучшим выбором.

Однако, если основным параметром будет скорость работы программы, то С++ будет лучшим выбором. Если нужно переносить между разными платформами, то так же понадобится С++.

Я занимаюсь разработкой игр. Мне важно именно скорость работы игры, а так же то, чтобы я мог запустить ее под: windows, MacOsX, iPhone/iPad, Android, PS3, XBox360, wii. Боюсь предложенные Вами языки будут плохи для моей задачи.

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

Reply

binf March 20 2013, 16:16:14 UTC
а я - серверных и embeded приложений, в которых производительность также не на последнем месте)

Разработчики игр как-то всё больше предпочитают опять таки что-то более человекообразное, например, ЯП для CLR/CLI. Для которой даже сборщик мусора изначально написан на LISPe.

Переносимость у управляемых сред как бы полная.

Ну а методы, которые Вы сформулировали, должны в идеале волновать исключительно узко специализированных спецов по компиляторам и линковщикам.

Reply

filoxsee March 21 2013, 08:00:20 UTC
Заказали мне на кафедре физики маленькую програмку моделирования частиц в определенной среде. Это не компилятор и не линковщик, но все эти методы были крайне необходимы. В несколько раз увеличивали скорость работы. Кстати программа использовала библиотеку CUDA, т.е. выполнялась не на CPU а на GPU, что еще в 1000 раз увеличивало скорость работы. То же относится к обработке изображения, где я использовал пиксельные шейдеры DirectX ( ... )

Reply


Leave a comment

Up