Приложения, интенсивно использующие память, или приложения, которым требуется много памяти, ограничены:
- Скорость оперативной памяти вне процессора
- Скорость кеша внутри процессора
- Количество объектов, совместно использующих
шина памяти
- Виртуальная память
К сожалению, эти ограничения не являются основными игроками в исполнении программы. Большими эффектами являются: количество процессоров, операции ввода-вывода и другие задачи, выполняемые с вашей программой. Изменение этих элементов повлияет на вашу программу больше, чем изменение элементов, влияющих на пропускную способность памяти.
1. Скорость оперативной памяти вне процессора
Процессор должен выходить за пределы своей оболочки и получать инструкции и данные из ОЗУ. Оперативная память имеет разные скорости, с которыми она может обращаться к ячейкам и возвращать биты обратно в процессор. Как правило, это отмечается в единицах Гц. Чем быстрее память, тем меньше времени тратит ваш процесс на загрузку инструкций и данных, и тем быстрее выполняется ваша программа.
Примечание: Увеличение скорости памяти за пределы возможностей процессора не приведет к увеличению производительности. Это меняет узкое место с оперативной памяти на процессор. Смотрите также № 3.
2. Скорость кеширования внутри процессора
Кэш-память находится внутри оболочки процессора. Это один из самых быстрых типов памяти. Процессоры будут искать эту память перед поиском в ОЗУ. Увеличение скорости и количества этой памяти улучшит производительность вашего процессора, , если другие ядра также не обращаются к этой памяти . Для доступа нескольких ядер к памяти необходимо разрешение конфликтов, что может снизить производительность ваших приложений.
Примечание: Вы ничего не можете сделать, чтобы ускорить или изменить размер кэш-памяти, кроме как получить другой процессор. Кэш-память не может быть легко изменена руками человека или робота.
3. Количество объектов, разделяющих шину памяти
Шина памяти похожа на шоссе, которое сущности используют для доступа к ОЗУ. Как и в случае с шоссе, большее число полос означает более высокую пропускную способность (например, ширина 16 бит по сравнению с 32 битами). Многие автобусы также имеют ограничение скорости, опять же, чем выше предел, тем быстрее доступ. Вероятно, наиболее заметной концепцией является количество объектов, подключенных к шине. Как и в случае с шоссе, больше пользователей замедляет трафик. В большинстве шин памяти только один объект может использовать его одновременно; другие лица должны ждать. Сокращение количества объектов, которые должны использовать шину памяти, ускорит вашу программу.
Некоторые общие объекты, разделяющие шину памяти: ЦП, контроллеры DMA, видеопроцессоры, звуковые процессоры и сетевые процессоры или процессоры ввода / вывода.
4. Виртуальная память.
Многие современные компьютеры используют виртуальную память . Если программе требуется больше памяти, чем доступно в ОЗУ, операционная система заменит разделы памяти областями на жестком диске. Это требует больше времени на производительность, чем снижение скорости работы памяти. Программа, интенсивно использующая память, более эффективна, поскольку использует только выделенную ей память, чем всю необходимую ей память. Сокращение этих перестановок виртуальной памяти ускорит программу.
Таким образом, существует максимальная скорость, с которой ваше приложение может выполняться. Память, как внутренняя кэш-память, так и внешняя ОЗУ, способствуют достижению верхнего предела. Существуют более серьезные факторы, которые не позволяют приложениям достигать этого предела. Некоторые из этих факторов - операции ввода-вывода и другие параллельные задачи. Разработка и реализация программы также могут способствовать медлительности. Повышение производительности достигается за счет исключения операций ввода-вывода, одновременных задач и перепроектирования программного обеспечения, чем путем изменения верхнего предела скорости доступа к памяти. Изменение этих ограничений увеличит производительность вашей программы, но не так сильно, как другие методы.