8 abr 2007

Linux: ¿por qué tardan más en iniciarse las aplicaciones que en Windows?

(Basado en el comentario original de "GeneralZorg" de UbuntuForums)
En general actualmente ninguna distribución Linux es más rápida que XP (aunque la gestión de memoria RAM y reparto de recursos entre tareas es mejor en Linux), pero hay algunas razones específicas que explican la relativa lentitud en cargar la misma aplicación en Linux:

1) Linux hace un uso extensivo de librerías generadas dinámicamente. Ésto tiene bastantes ventajas sobre las librerías compiladas estáticamente utilizadas por Windows (como reducción del uso de la memoria como una de las más importantes) pero se reduce la velocidad de carga debido a la necesitad de unir aplicaciones y librerías cuando se cargan. Esto se da especialmente en aplicaciones C++ (como Firefox, OpenOffice, la mayoría de KDE, etc).
Se están haciendo algunos "arreglillos" para mejorar esto (por ejemplo, -fvisibility=hidden de GCC), pero parece ser que la velocidad de arranque de las aplicaciones bajo Linux nunca alcanzará a sus equivalentes de Windows.


2) Algunas aplicaciones, para hacerlas más facilmente portables a otros sistemas operativos, están escritas con lenguajes de muy alto nivel y relativamente poco optimizados (buscando más la estabilidad y desarrollo rápido que la eficiencia) como GTK o QT, que proporcionan entornos de desarrollo complejos y que ocupan más memoria, por lo que los datos a cargar por el SO a veces es mayor de la habitual (aunque este caso se da tanto en Linux como en Windows si analizamos el mismo programa).

Si lo analizamos con detenimiento esto es lógico: Linux (una implementación de la tecnología Unix) nació como un sistema operativo para servidores, y sus desarrolladores han considerado que es más importante utilizar menos memoria y que sea más estable; ya que en un servidor una aplicación se arranca una sola vez y tiene que funcionar hasta el fin de los días (al menos eso se intenta).

Nota de Copyright: Las marcas mencionadas son propiedad de sus respectivos dueños.

2 comentarios:

  1. Pues lo compilas estáticamente y listo, que para eso tienes el código fuente ;-D

    ResponderEliminar
  2. Jeje. No es una solución. Las distros vienen dinámicamente (y así las actualizaciones son mucho más sencillas) ya es es mucho mejor. Así es como se lo encuentra el usuario, lo que comentas sólo tiene sentido si lo haces con algún programa que uses mucho, pero no con el sistema operativo:
    Ventajas:
    1) Ocupa menos memoria y disco duro ya que se comparte la misma librería por los programas que la usen.
    2) Se mantiene más fácilmente; actualizas una librería y se actualiza todo lo que la use.
    3) El sistema es más estable por la misma razón anterior.

    Desventajas:
    1) Tarda un poco más en cargar el programa. Y punto.

    Sinceramente yo lo prefiero así. Es así como debe hacerse.

    Ah! y gracias por tu aportación, y sí, tienes la libertad de hacer lo que te apetezca, ésa es la diferencia.

    ResponderEliminar

Puede dejar su comentario, que tratará de ser moderado en los días siguientes. En caso de ser algo importante/urgente, por favor utilicen el formulario de arriba a la derecha para contactar.