Память или производительность. Чему отдать предпочтение?
Взаимосвязь производительности и экономии памяти при программировании. Преобразование компьютерного программного кода как способ оптимизации хранения данных в ячейках памяти. Влияние переменных различного типа на фиксированный объём оперативной памяти.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 22.03.2019 |
Размер файла | 14,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
4
ПАМЯТЬ ИЛИ ПРОИЗВОДИТЕЛЬНОСТЬ. ЧЕМУ ОТДАТЬ ПРЕДПОЧТЕНИЕ?
Новиков А.П., Горовенко Л.А.
Армавирский механико-технологический
институт (филиал) ФГБОУ ВПО
"Кубанский государственный технологический университет"
Армавир, Россия
Зачастую перед теми, кто занимается программированием в сфере игровых модификаций встает вопрос: Как стоит строить код: максимально производительно, или максимально экономично в отношении памяти.
Большинство программистов решит, что нужно искать компромисс. Но что делать в тех случаях, когда компромисс найти тяжело, либо вообще невозможно? Искать!
Допустим, нам нужно иметь в памяти 1000 ячеек содержащих двоичный ноль или единицу. 1000 целочисленных переменных (int) займет в памяти 1.95 Мб, в то время как 1000 переменных логического типа (bool) займет в памяти примерно 490 Кб. Этот метод перехода от использования одного типа данных к использованию другого приводит к экономии трёх четвертей используемой памяти. Неплохо! Но, тут же возникает вопрос, а можно ли сэкономить ещё больше?
Проведённые нами эксперименты по преобразованию компьютерного программного кода привели нас к ещё более мощному способу оптимизации памяти: хранение данных в ячейках, пользуясь ими через побитовый сдвиг.
В этом случае, на 1000 переменных мы потратим порядка 80 Кб оперативной памяти, что почти в 25 раз меньше, по сравнению с той же тысячью целочисленных переменных типа int.
Результаты проведённого сравнительного анализа представлены в таблице 1.
Таблица 1 Сравнительные анализ количества переменных различного
типа на фиксированный объём оперативной памяти
Фиксированный объём памяти |
1 |
950 кб = 1.95 мб |
||
Тип переменной |
int |
bool |
bit's |
|
Количество переменных |
1000 |
4000 |
> 24 000 |
В качестве эксперимента, каждый вид переменных был записан, использован и перезаписан 10 000 раз с целью определения скорости работы программы, реализующей одну и ту же задачу посредством использования различных типов переменных. Результаты эксперимента представлены в таблице 2:
Таблица 2 Результаты эксперимента
Тип данных |
int |
bool |
bit's |
|
Время (усл.ед.) |
~190 |
~170 |
~240 |
Как показал эксперимент, bit-овые переменные оказались «медленнее» остальных. Почему? Потому, что для выполнения побитовых операций генерируются дополнительные инструкции в секции кода, которые идут параллельно с нашими bit-ами. А, как известно, любая операция в той или иной степени «загружает» машину, что, естественно, сказывается на её быстродействии. Проведённый нами эксперимент показал также, что не все программные двигатели имеют многопоточность и выполняют все операции последовательно.
Приведём фрагменты программного кода, иллюстрирующие проведённое нами исследование.
Итак, создаем:
#define MAX_USERS (1000)
enum Bits:(<<= 1) //не забываем, не более 32
{
EnumOne = 1,
EnumTwo, ...
};
new Bits:UserBits[MAX_USERS];
Узнаем значение и обнуляем весь массив пользователя:
UserBits[userid] &EnumOne;
UserBits[userid] = Bits:0;
Устанавливаем ячейке значение 1 (true)
UserBits[userid] |= EnumOne;
Устанавливаем ячейке значение 0 (false)
UserBits[userid] &= ~EnumOne;
Меняем значение в ячейке (при 0 ставим 1, и наоборот)
UserBits[userid] ^= EnumOne;
программный код производительность память
Список литературы:
1.Горовенко Л.А. Логическое программирование и искусственный интеллект // Научный потенциал вуза производству и образованию. Сборник трудов научно-практической конференции профессорского-преподавательского состава Армавирского механико-технологического института (филиала) ГОУ ВПО "Кубанский Государственный технологический университет". Том. 2. - Армавир: Издательство АФЭИ, 2005. - С. 303- 304.
2.Шарнова В.А., Горовенко Л.А. Технология применения методов комбинаторного анализа в играх с угадыванием числа // Электронный журнал «Международный студенческий научный вестник»: Типография ИД «Академия Естествознания», - Саратов, 2015. - № 5. Ч4. - С. 586-587. 3. Горовенко Л.А., Манин М.П. Применение математического аппарата методов оптимизации в задачах моделирования электросбережения // Сборник докладов, отмеченных наградами ХХI научной конференции студентов и аспирантов АМТИ, посвященной 70-летию Победы в Великой Отечественной войне. Армавир: ООО «Редакция газеты «Армавирский собеседник», подразделение Армавирская типография», 2015. - С. 88 - 92.
Размещено на Allbest.ru
...Подобные документы
Хранение различной информации как основное назначение памяти. Характеристика видов памяти. Память типа SRAM и DRAM. Кэш-память или сверхоперативная память, ее специфика и области применения. Последние новинки разработок в области в оперативной памяти.
презентация [2,1 M], добавлен 01.12.2014Объем двухпортовой памяти, расположенной на кристалле, для хранения программ и данных в процессорах ADSP-2106x. Метод двойного доступа к памяти. Кэш-команды и конфликты при обращении к данным по шине памяти. Пространство памяти многопроцессорной системы.
реферат [28,1 K], добавлен 13.11.2009История появления и развития оперативной памяти. Общая характеристика наиболее популярных современных видов оперативной памяти - SRAM и DRAM. Память с изменением фазового состояния (PRAM). Тиристорная память с произвольным доступом, ее специфика.
курсовая работа [548,9 K], добавлен 21.11.2014Классификация компьютерной памяти. Использование оперативной, статической и динамической оперативной памяти. Принцип работы DDR SDRAM. Форматирование магнитных дисков. Основная проблема синхронизации. Теория вычислительных процессов. Адресация памяти.
курсовая работа [1,5 M], добавлен 28.05.2016Обобщение основных видов и назначения оперативной памяти компьютера. Энергозависимая и энергонезависимая память. SRAM и DRAM. Триггеры, динамическое ОЗУ и его модификации. Кэш-память. Постоянное запоминающее устройство. Флэш-память. Виды внешней памяти.
курсовая работа [1,7 M], добавлен 17.06.2013Простейшая схема взаимодействия оперативной памяти с ЦП. Устройство и принципы функционирования оперативной памяти. Эволюция динамической памяти. Модуль памяти EDO-DRAM BEDO (Burst EDO) - пакетная EDO RAM. Модуль памяти SDRAM, DDR SDRAM, SDRAM II.
реферат [16,1 K], добавлен 13.12.2009Классификация основных видов памяти компьютера. Использование оперативной памяти для временного хранения данных, используемых для работы программного обеспечения. Расчет потребления электроэнергии, формирование квитанции для потребителя в Microsoft Excel.
курсовая работа [1,5 M], добавлен 23.04.2013Используемые в компьютерах устройства памяти для хранения данных. Внутренние (оперативная и кэш-память) и внешние устройства памяти. Уровни иерархии во внутренней памяти. Подключения дисководов и управления их работой с помощью дискового контроллера.
презентация [47,7 K], добавлен 26.11.2009Стратегии размещения информации в памяти. Алгоритмы распределения адресного пространства оперативной памяти. Описание характеристик модели и ее поведения, классов и элементов. Выгрузка и загрузка блоков из вторичной памяти. Страничная организация памяти.
курсовая работа [708,6 K], добавлен 31.05.2013Внутренний кэш. Смешанная и разделенная кэш-память. Статическая и динамическая память. TLB как разновидность кэш-памяти. Организация кэш-памяти. Отображение секторов ОП в кэш-памяти. Иерархическая модель кэш-памяти. Ассоциативность кэш-памяти.
курсовая работа [229,1 K], добавлен 04.11.2006Модель памяти как набор опций компилятора, ее виды в BC++2.0, размеры и взаимное расположение. Назначение сегментных регистров в различных моделях памяти, порядок просмотра переменных. Основные и дополнительные функции динамических переменных в памяти.
лабораторная работа [28,4 K], добавлен 06.07.2009Улучшение параметров модулей памяти. Функционирование и взаимодействие операционной системы с оперативной памятью. Анализ основных типов, параметров оперативной памяти. Программная часть с обработкой выполнения команд и размещением в оперативной памяти.
курсовая работа [99,5 K], добавлен 02.12.2009Использование микросхем SRAM при высоких требованиях к быстродействию компьютера для кеширования оперативной памяти и данных в механических устройствах хранения информации. Изучение устройства матрицы и типов (синхронная, конвейерная) статической памяти.
реферат [71,0 K], добавлен 06.02.2010Изучение свойств оперативной памяти, являющейся функциональной частью цифровой вычислительной машины, предназначенной для записи, хранения и выдачи информации, представленных в цифровом виде. Характеристика объема разных видов оперативной памяти.
реферат [24,0 K], добавлен 30.12.2010Понятие, виды и основные функции памяти компьютера - части вычислительной машины, физического устройства для хранения данных, используемых в вычислениях, в течение определенного времени. Принципиальная схема оперативной памяти. Гибкие магнитные диски.
презентация [947,6 K], добавлен 18.03.2012Оперативная память - часть памяти компьютера: назначение, функции, способ передачи данных процессору. Современные запоминающие устройства: голографическое, молекулярное, на основе графеновой наноленты и нанотрубках; принцип работы и перспективы развития.
реферат [1,3 M], добавлен 21.04.2011Средства машинного хранения данных, используемые в персональных компьютерах. Особенности механизмов чтения-записи. Контроль достоверности хранимых в памяти данных. Уровни кэш-памяти. Политика записи при кешировании, сравнение производительности.
презентация [2,7 M], добавлен 10.08.2013Изучение устройства и назначения оперативной памяти как части системы компьютерной памяти, предназначенной для временного хранения данных при выполнении операций процессором ПК. Произвольный доступ и характеристика основных типов ОЗУ: DIMM, DDR, FTM, EDO.
презентация [3,9 M], добавлен 03.03.2011Понятие и функциональные особенности запоминающих устройств компьютера, их классификация и типы, сравнительная характеристика: ROM, DRAM и SRAM. Оценка преимуществ и недостатков каждого типа оперативной памяти, направления и пути их использования.
презентация [118,1 K], добавлен 20.11.2013Сравнительный анализ статической и динамической памяти. Быстродействие и потребление энергии статической памятью. Объем памяти микросхем. Временные диаграммы чтения и записи памяти. Микросхемы синхронной и асинхронной памяти. Режимы модулей памяти.
презентация [114,2 K], добавлен 27.08.2013