Память или производительность. Чему отдать предпочтение?

Взаимосвязь производительности и экономии памяти при программировании. Преобразование компьютерного программного кода как способ оптимизации хранения данных в ячейках памяти. Влияние переменных различного типа на фиксированный объём оперативной памяти.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.