内存占用_

标题:内存占用 内存占用量是指程序在运行时使用或引用的主内存量。[1] 单词脚印通常是指物体占据的物理尺寸的范围,从而给出其尺寸的感觉。在计算中,程序执行时,软件应用程序的内存占用量指示其运行时内存要求。这包括各种活动的内存区域,例如包含(主要)程序指令(偶尔是常量),数据段(初始化和未初始化),[1]堆内存,调用堆栈以及存储任何额外数据结构所需的内存的代码段,如符号表,调试数据结构,打开的文件,映射到当前进程的共享库等等,程序在执行时需要,并且在整个运行过程中至少加载一次[2]。 较大的程序具有较大的内存占用。应用程序的内存占用大致与其加载的共享库或类的数量和大小成正比,而静态库,可执行程序和静态数据区有助于固定(恒定)部分。程序本身通常不会贡献最大部分到它们自己的内存占用空间;相反,由运行时环境引入的结构占用了大部分内存。例如,C 编译器插入vtable,类型信息对象以及许多在程序执行期间处于活动状态的临时和匿名对象。在Java程序中,内存占用主要由以Java虚拟机(JVM)形式的运行时环境组成,当Java应用程序启动时间接加载它。另外,在大多数操作系统中,应用程序打开的磁盘文件也会读入应用程序的地址空间,从而影响其占用空间。 在20世纪90年代,计算机内存变得更便宜,而内存占用更大的程序变得司空见惯。这种趋势主要是由于广泛使用计算机软件,从消耗大量内存的大型企业应用程序(如数据库)到内存密集型多媒体创作和编辑软件。为了应对不断增加的内存需求,引入了虚拟内存系统,将可用内存划分为相同大小的部分,并根据需要基于硬盘上存储的“页面”加载它们。 这种支持具有巨大内存占用的程序的方法非常成功。大多数现代操作系统包括Microsoft Windows,Apple的Mac OS X以及所有版本的Linux和Unix都提供虚拟内存系统。 传统上,低内存占用程序对于在嵌入式平台上运行应用程序非常重要,因为嵌入式平台的内存通常是受限制的资源[1] - 以至于开发人员通常牺牲效率(处理速度)以使程序占用空间足够小进入可用的RAM。例如,Sun Microsystems为这些受限设备推出了其Java虚拟机(JVM)版本;它取决于KVM的名称。 KVM适用于内存以千字节为单位的平台,而不是常规家用PC或更现代化智能设备上可用的兆字节(或甚至千兆字节)内存。

 


posted @ 18-10-11 07:16  作者:admin  阅读量:

powered by 摩臣2 @2014 RSS地图 html地图

Copyright 365建站 © 2013-2017 365建站器 版权所有