La huella de memoria se refiere a la cantidad de memoria principal que un programa utiliza o a la que hace referencia mientras se ejecuta. [ 1 ]
El término huella generalmente se refiere a la extensión de las dimensiones físicas que ocupa un objeto, dando una idea de su tamaño. En informática, la huella de memoria de una aplicación de software indica sus requisitos de memoria en tiempo de ejecución, mientras el programa se ejecuta. Esto incluye todo tipo de regiones de memoria activas como el segmento de código que contiene (principalmente) instrucciones del programa (y ocasionalmente constantes), el segmento de datos (tanto inicializado como no inicializado), [ 1 ] la memoria del montón , la pila de llamadas , más la memoria necesaria para contener cualquier estructura de datos adicional, como tablas de símbolos , estructuras de datos de depuración , archivos abiertos, bibliotecas compartidas asignadas al proceso actual, etc., que el programa necesite durante su ejecución y que se cargará al menos una vez durante toda la ejecución. [ 2 ]
Los programas más grandes tienen un mayor consumo de memoria. El consumo de memoria de una aplicación es aproximadamente proporcional al número y tamaño de las bibliotecas compartidas o clases que carga, mientras que las bibliotecas estáticas, los programas ejecutables y las áreas de datos estáticos contribuyen con una porción fija (constante). Los programas en sí mismos no suelen ser los que más memoria consumen; más bien, las estructuras introducidas por el entorno de ejecución ocupan la mayor parte de la memoria. Por ejemplo, un compilador de C++ inserta tablas virtuales ( vtables) , objetos de información de tipo y muchos objetos temporales y anónimos que están activos durante la ejecución de un programa. En un programa Java, el consumo de memoria se compone principalmente del entorno de ejecución, en forma de la propia máquina virtual Java (JVM), que se carga indirectamente cuando se inicia una aplicación Java. Además, en la mayoría de los sistemas operativos, los archivos de disco abiertos por una aplicación también se leen en el espacio de direcciones de la aplicación, contribuyendo así a su consumo de memoria.
Tendencia de uso
Durante la década de 1990, la memoria de las computadoras se abarató y los programas que consumían mucha memoria se hicieron comunes. Esta tendencia se debió principalmente al uso generalizado de software, desde grandes aplicaciones empresariales que consumen enormes cantidades de memoria (como las bases de datos ) hasta software de edición y creación multimedia que requiere mucha memoria. Para hacer frente a las crecientes necesidades de memoria, se introdujeron sistemas de memoria virtual que dividen la memoria disponible en porciones de igual tamaño y las cargan desde " páginas " almacenadas en el disco duro según sea necesario.
En sistemas embebidos
Tradicionalmente, los programas con bajo consumo de memoria eran importantes para ejecutar aplicaciones en sistemas embebidos donde la memoria solía ser un recurso limitado [ 1 ] , hasta tal punto que los desarrolladores normalmente sacrificaban la eficiencia (velocidad de procesamiento) solo para que el tamaño de los programas fuera lo suficientemente pequeño como para caber en la RAM disponible. Por ejemplo, Sun Microsystems lanzó una versión de su Máquina Virtual Java (JVM) para estos dispositivos con recursos limitados; se llama KVM . KVM funciona en plataformas donde la memoria se mide en kilobytes, a diferencia de los megabytes (o incluso gigabytes ) de memoria disponibles en una PC doméstica común o en teléfonos móviles y tabletas más modernos.
Véase también
- Huella de la aplicación
- Memoria virtual , una técnica de gestión de memoria que virtualiza diversas formas de almacenamiento de datos informáticos (como la memoria de acceso aleatorio y el almacenamiento en disco ).
Referencias
- 1 2 3 "Definición de: huella de memoria" . PC Mag . Consultado el 1 de agosto de 2012 .
- ↑ "Reduzca el consumo de memoria de Linux" . IBM developerWorks . Consultado el 1 de agosto de 2012 .
- Optimización de software