A lo largo de los años, utilizando varias cajas de Linux, me he acostumbrado a usar el preenlace ritualmente para acelerar los tiempos de carga de las aplicaciones.
Sin embargo, los beneficios de ejecutar prelink se niegan cada vez que se reinstala un paquete, ya que todas sus dependencias y sus dependientes deben volver a vincularse.
Esta vinculación previa puede causar múltiples problemas, y uno como tal es la invalidación binaria de MD5, lo que es problemático para cosas que comparan las revisiones MD5 frente a las anteriores o usan MD5 para determinar si el binario ha cambiado o no y, por lo tanto, no se desea limpiar al retirar el paquete .
Recientemente, las computadoras se han vuelto mucho más rápidas, y el beneficio del rendimiento del preenlace ahora es apenas notable.
¿El uso del preenlace sigue siendo un concepto racional, o puede descartarse casualmente y dejarse atrás como algo de una época pasada?
fuente
No diría que debería descartarse arbitrariamente, sin embargo, definitivamente diría que su uso debería pensarse un poco más.
En una máquina moderna de gama alta que se actualiza con frecuencia, el enlace previo puede no ser una optimización útil. Sin embargo, todavía hay una serie de casos en los que podría valer la pena usar. Por ejemplo, en una máquina más antigua o inferior, o en máquinas que son bastante estáticas y no experimentan cambios o actualizaciones frecuentes. También podría valer la pena si tiene una alta tasa de programas que se ejecutan repetidamente (puedo pensar en un par de situaciones en las que podría tener programas que se ejecutan en rápida sucesión o en paralelo donde la vinculación previa podría mejorar el rendimiento).
En general, debe considerar su situación específica y luego decidir si los beneficios superan el trabajo y el esfuerzo adicionales.
fuente
Diría que el preenlace es definitivamente útil en servidores de escritorio multiusuario, como los servidores LTSP utilizados en escuelas y cafés de red, por ejemplo. El preenlace no solo acelera la carga de la aplicación, sino que también mejora la utilización de RAM y la agitación del disco debido a la contención entre usuarios, permitiendo muchos más usuarios simultáneos en un servidor.
fuente
Creo que con la caída de los precios de la memoria, la vinculación previa se está volviendo menos útil. Si todavía quiere acelerar un poco las cosas, puede buscar precarga .
fuente
Dejo esa decisión a la versión del sistema operativo. Si, de manera predeterminada, el sistema operativo elige llamar al preenlace regularmente usando cron, entonces, de lo contrario, puede que no sea tan útil. Espero que los creadores de distribuciones hayan pensado antes de elegir agregar / eliminar la opción de preenlace de forma predeterminada. Así que voy con ellos en lugar de analizar las cosas nuevamente.
fuente
Gentoo usa preenlace. Evitan el problema de md5sum al ignorar la información de preenlace cuando se calcula el hash.
Prelink siempre le dará un aumento de velocidad, aunque puede volverse cada vez menos notable a medida que el hardware se vuelve más rápido. La única forma de saber con certeza sobre su hardware es desactivar el preenlace y ver cómo le gusta la desaceleración en los lanzamientos de aplicaciones.
Nota al margen: OS X también solía hacer una forma de vinculación previa, pero se ha abandonado a favor de un caché vinculado que el enlace se mantiene. Lo mejor de ambos mundos, sin cambios binarios y sin sobrecarga real versus enlaces normales. Espero que Linux recoja esta idea en algún momento :)
Actualización: Me recientemente intentado prelinkado en Linux , y para una compilación de cscope con muchos archivos y procesos Tengo un impulso de velocidad 5%.
fuente