stringtranslate.com

Объем памяти

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

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

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

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

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

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

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

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

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

Ссылки

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