Объем памяти - Memory footprint

Объем памяти относится к количеству основная память что программа использует или ссылается во время работы.[1]

Слово след обычно относится к степени физических размеров, которые занимает объект, давая представление о его размере. В вычислениях объем памяти программного приложения указывает его требования к памяти во время выполнения программы. Это включает в себя всевозможные области активной памяти, такие как сегмент кода содержащие (в основном) программные инструкции (а иногда и константы), сегмент данных (как инициализированные, так и неинициализированные),[1] куча памяти, стек вызовов, плюс память, необходимая для хранения любых дополнительных структур данных, таких как таблицы символов, отладка структур данных, открытые файлы, общие библиотеки сопоставлены с текущим процессом и т. д., которые когда-либо понадобятся программе во время выполнения, и будут загружены хотя бы один раз в течение всего выполнения.[2]

У более крупных программ больше места в памяти. Объем памяти приложения примерно пропорционален количеству и размерам совместно используемых библиотек или классов, которые оно загружает, тогда как статические библиотеки, исполняемые программы и области статических данных составляют фиксированную (постоянную) часть. Сами программы часто не вносят большую часть в свои собственные следы памяти; скорее, структуры, представленные средой выполнения, занимают большую часть памяти. Например, компилятор C ++ вставляет таблицы, тип информации объекты и многие временные и анонимные объекты, которые активны во время выполнения программы. В программе Java объем памяти в основном состоит из среды выполнения в виде Виртуальная машина Java (JVM), которая загружается косвенно при запуске приложения Java. Кроме того, в большинстве операционных систем файлы на диске, открытые приложением, также считываются в адресное пространство приложения, тем самым увеличивая его размер.


Тенденция использования

В течение 1990-х годов компьютерная память стала дешевле, и программы с большим объемом памяти стали обычным явлением. Эта тенденция произошла в основном из-за широкого использования компьютерного программного обеспечения в крупных корпоративных приложениях, которые потребляют огромное количество памяти (например, базы данных ), в программное обеспечение для создания и редактирования мультимедийных файлов с интенсивным использованием памяти. Чтобы удовлетворить постоянно растущие потребности в памяти, виртуальная память были введены системы, которые делят доступную память на части равного размера и загружают их со «страниц», хранящихся на жестком диске, по мере необходимости.

Такой подход к поддержке программ с огромным объемом памяти оказался весьма успешным. Большинство современных операционных систем, включая Майкрософт Виндоус, Apple macOS, и все версии Linux и Unix предоставить системы виртуальной памяти.

Во встроенных системах

Традиционно программы с малым объемом памяти имели важное значение для запуска приложений на встроенных платформах, где память часто была ограниченным ресурсом.[1] - настолько сильно, что разработчики обычно жертвуют эффективностью (скоростью обработки) только для того, чтобы сделать программные следы достаточно маленькими, чтобы поместиться в доступной оперативной памяти. Например, Sun Microsystems представил версию своего Виртуальная машина Java (JVM) для таких ограниченных устройств; это идет по имени KVM. KVM работает на платформах, где используется память. килобайты в отличие от мегабайты (или даже гигабайты ) памяти, доступной на обычном домашнем ПК или более современных интеллектуальных устройствах.

Смотрите также

Рекомендации

  1. ^ а б c «Определение: объем памяти». PC Mag. Получено 1 августа 2012.
  2. ^ «Уменьшите объем памяти Linux». IBM developerWorks. Получено 1 августа 2012.