Tecnología

Inicio

La vinculación dinámica vs enlazado estático

En el desarrollo de software, una biblioteca es una colección de herramientas o recursos que se utilizan para crear un programa. Estos recursos pueden incluir código, subrutinas, las clases, los valores o las especificaciones anteriores escritos. Durante la compilación, un editor de enlace conocido como un ligador llena de referencias de biblioteca de programas y combina módulos de objeto en el programa que crea un archivo ejecutable. Por lo general la vinculación que se hace en uno de los dos estilos - estáticos y dinámicos. Cada uno tiene ventajas y desventajas.

Vinculación biblioteca

La principal diferencia entre los dos métodos de unión es la forma en que la biblioteca está vinculado al archivo ejecutable. En la vinculación estática, todas las rutinas de biblioteca necesarios se copian directamente en el archivo ejecutable del programa. El archivo es totalmente autónomo y no requiere de recursos de biblioteca adicionales para empezar. En la vinculación dinámica, las referencias a una biblioteca compartible se integran en el programa ejecutable en su lugar, así como una zona links, biblioteca de rutinas necesarias durante la puesta en marcha.

Tamaño del archivo

Los programas con enlazado estático tienden a requerir más espacio en disco que los programas de enlace dinámico porque todas las referencias de biblioteca se codifican directamente en el archivo ejecutable. En un sistema dinámico, la biblioteca es un archivo independiente que carga paralela al archivo ejecutable. Con los datos que no están directamente parte del programa, el tamaño total del archivo programa se reduce.

Múltiples programas contra-autocontenido

programas enlazados estáticamente son completamente autónomo y no requiere recursos adicionales para ser funcionales si son trasladados a un nuevo equipo. Sin embargo si hay varios programas que utilizan las mismas referencias de biblioteca están enlazados estáticamente, cada programa tiene que tener su propio conjunto de referencias de biblioteca codificados en ella. La vinculación dinámica requiere la biblioteca externa para funcionar, lo que requiere tanto el programa como la biblioteca para ser transportados con el fin de funcionar correctamente. Sin embargo, varios programas que utilizan la misma biblioteca se pueden vincular a la misma biblioteca. Esto puede reducir el uso total de espacio en disco, como una sola biblioteca puede dar servicio a muchos programas que sería necesario de otro modo sus propias bibliotecas codificadas por separado en ellos.

Horarios de carga

Porque todo tiene un programa enlazado estáticamente se codifica la derecha en él, programas estáticos cargan mucho más rápido que sus contrapartes dinámicas. programas enlazados dinámicamente necesitan para cargar la biblioteca y acceder a la información de ella como el propio programa se está cargando, en lugar de una carga recta que es posible en la vinculación estática.

Uso de memoria

Cuando se ejecuta un proceso único, la vinculación estática puede usar menos memoria porque todo carga a la vez. No hay archivo independiente que tiene que correr con el fin de poner en marcha el programa. Sin embargo, cuando el número de procesos aumenta, lo contrario se vuelve verdadera. Cuando la ejecución de múltiples procesos, cada proceso tiene enlazado estáticamente para funcionar de forma individual y recurrir a ella Está codificado recursos. Una serie de programas vinculados a una única biblioteca sólo necesita recurrir a la biblioteca individual, lo que limita la cantidad de datos necesarios para cargar para ejecutar el proceso y reducir en gran medida la cantidad de memoria utilizada.