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

Методы оптимизации памяти - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вопрос начинающего http://www.cyberforum.ru/cpp-beginners/thread330779.html
Здравствуйте. Мне сейчас 16 лет и в сентябре я пойду в 11 класс (я школота). В будущем я хочу стать программистом. Сейчас я уже учу С++ (немножко могу гонять в консоли) и немножко Delphi. Как мне дальше строить своё развитие как программиста? Что читать/писать/учить/делать, чтобы как можно раньше начать работать по специальности и стать хорошим специалистом? Прошу помощи, так как, по...
C++ Сетевая карта Добрый вечер. Подскажите в какую сторону смотреть и какие маны читать. Задача: узнать сколько у сетевой карты ethernet портов, узнать их адреса, попробовать послать в них и принять из них данные. :) Добавлено через 17 минут ОС : Windows http://www.cyberforum.ru/cpp-beginners/thread330778.html
C++ Может кому понадобится
Кое-что из динамического программирования... Задача подсчёта в прямоугольной матрице количества связных областей (областей состоящих из смежных клеток) . В данном случае вводится матрица из нулей и единиц. Будет подсчитываться кол-во областей состоящих из единиц. 0 - пустая клетка. Например, я ввожу следующую матрицу размеров 3x5 : 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 В ней кол-во областей из...
C++ Динамическое программирование
Помогите пожалуйста,кто может, со следующими задачами, так как в С++ слабо разбираюсь, а к понедельнику надо сдать... 1. Определить сколько в линейном массиве групп одинаковых идущих подряд элементов. 2. Даны длины двух сторон треугольника и один из его углов. Определить максимальный периметр треугольника, который можно построить из этих элементов. 3. Даны символьные строки. Определить общую...
C++ Количество выводимых строк в консоли (размер буфера экрана) http://www.cyberforum.ru/cpp-beginners/thread330746.html
Такая проблема - по умолчанию в Windows размер "буфера экрана" для консоли - 300 строк. Я вывожу гораздо больше (около 1200 строк) соотв. часть обрезается и на вывод попадает не все. Есть ли какая-нибудь возможность изменить это значение из своей программы, а не руками в Windows? В кач-ве среды использую VS 2010 Заранее спасибо!
C++ Опишите класс DETSAD Дорогие, форумчане. Помогите пож-та с заданием Опишите класс DETSAD (номер сада, количество детей, район города, плата за месяц). Введите с клавиатуры данные в массив, состоящий из шести элементов типа DETSAD. Выведите на экран информацию о детских садах указанного района (название района введите с клавиатуры). Если в таком районе еще нет детских садов, то программа должна выдать соответствующее... подробнее

Показать сообщение отдельно
FiloXSee
18 / 9 / 0
Регистрация: 01.07.2011
Сообщений: 25
08.07.2011, 13:31  [ТС]     Методы оптимизации памяти
Цитата Сообщение от Maxwe11 Посмотреть сообщение
можно какие либо аргументы по 4-му пункту
Когда идет постоянная работа с объектами и их иерархиями, например в бизнесс логике, то 4-й пункт будет практически не применим. Он применим тогда, когда проектируется некая система с большим количеством данных.

Пример: вы собираетесь делать систему частиц. Понятно что внешнему коду не нужно работать с конкретной частицей в отдельности (никогда не нужно). Из вне придет команда - обновить/отрисовать систему частиц. Этот процесс будет значительно ускорен, если частицы будут идти в памяти подряд (будет меньше обращений к памяти).

Как выглядит обновление частиц:
1. нужно для всех частиц изменить позицию
2. нужно для всех частиц изменить вращение
... цвет и прочие параметры.

Если данные будут представлены в виде последовательности частиц то: размер частицы 64 байта. Из памяти берется за раз 64 байта. Это значит что при обновление на каждую частицу будет по запросу к памяти (который 600 тактов, в то время как вычисления будут 12-15 тактов, т.е. будет тормозить доступ к памяти, а не математика).

Если же организовать все как в пункте 4-е, т.е. раcположить сначала все позиции в памяти, затем все повороты и т.д., то за раз будет получено 64/16=4 позиции для 4-х партиклов (тут 16 байт это размер структуры float x,y,z,w). т.е. для расчета всех партиклов будет в 4-е раза меньше запросов к памяти, скорость выполнения увеличится более чем в 3-и раза.

4-й метод актуален когда расчеты часто проводятся по какому то параметру структуры. Например найти объект по индексу. Это будет значительно быстрее если индексы будут в отдельном массиве.
 
Текущее время: 23:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru