Descargas

La primera versión estable del enlazador de moldes desarrollada por el desarrollador LLVM lld

Rui Ueyama, compositor LLVM Y el compilador Chibi , introducido La primera versión estable de Xingao Connector Molde , Muy por delante de la tasa de enlace del vinculador de archivos de objetos GNU gold y LLVM lld. El proyecto se considera listo para la implementación de producción y se puede utilizar como una alternativa más rápida y transparente al enlazador GNU en sistemas Linux. El plan para la próxima versión principal incluye preparar el soporte para la plataforma macOS, después de lo cual comenzará a ajustar el trabajo de Mold para Windows.

Mold está escrito en C ++ (C ++ 20) y distribuido bajo la licencia AGPLv3. Es compatible con GPLv3, pero no compatible con GPLv2, porque necesita estar abierto para modificaciones al desarrollar servicios de red.Esta elección Depender de Espero obtener financiación para el desarrollo: el autor prepara el derecho a vender el código para volver a obtener una licencia con una licencia como MIT, o proporcionar una licencia comercial separada para aquellos que no están satisfechos con la AGPL.

Mold admite todas las funciones del enlazador GNU y tiene un rendimiento muy alto: la velocidad de ejecución del enlace es solo el doble de la velocidad de simplemente copiar archivos usando la utilidad cp. Por ejemplo, al compilar Chrome 96 (tamaño de código 1,89 GB), usar GNU gold para vincular archivos ejecutables y debuginfo en una computadora de 8 núcleos toma 53 segundos, LLVM lld toma 11.7 segundos y Mold solo toma 2.2 segundos (26 más rápido que GNU ) Times) gold) … Cuando se vincula a Clang 13 (3,18 GB), GNU gold tarda 64 segundos, LLVM lld tarda 5,8 segundos y Mold tarda 2,9 segundos. Al vincular Firefox 89 (1,64 GB), GNU gold tarda 32,9 segundos, LLVM lld tarda 6,8 segundos y Mold tarda 1,4 segundos.

Reducir el tiempo de compilación puede mejorar significativamente la conveniencia de desarrollar grandes proyectos al reducir el tiempo de espera en el proceso de generación de archivos ejecutables al depurar y probar cambios. La motivación para crear Mold es la molestia de tener que esperar a que se complete el enlace cada vez que se cambia el código, la ineficiencia del enlazador existente en sistemas de múltiples núcleos y el intento de evitar modelos complejos innecesarios, como el enlace incremental.

El alto rendimiento de vincular un archivo ejecutable de una gran cantidad de archivos objeto preparados por el compilador se logra de las siguientes maneras usar Algoritmos más rápidos, paralelización activa de operaciones entre núcleos de CPU y uso de estructuras de datos más eficientes. Por ejemplo, Mold implementa una técnica para realizar cálculos intensivos mientras copia archivos, carga activamente archivos de destino en la memoria, usa tablas hash rápidas al analizar caracteres, escanea tablas de reubicación en secuencias separadas y reubica diferentes archivos Partes repetidas en la deduplicación de datos.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba