[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Aclarando (Compilación Estática)



On Tue, 13 Nov 2001, Bernardo Arlandis Mañó wrote:

> Fernando wrote:
> 
> > Estimado debian-user-spanish,
> > 
> > Desde ya les agradezco por todas sus respuestas y opiniones.
> > Con  respecto  a  al  pregunta que me hicieron en reiteradas oportunidades
> > sobre,  si  ¿  Realmente  necesito compilar estáticamente los programas ?,
> > para no tener que cargar las librerías:
> > Por 2 razones:
> > 1-  No  tengo  mucha  memoria  RAM (tengo 64 MB en el equipo que lo quiero
> > hacer),  y me parece que cargando las librerías de gnome, junto con las de
> > kde que es el que uso, me ocuparía mucha memoria ???
> > 
> > 2-  No se como hacerlo (cargar las librerías) y no se cuanto me ocupa para
> > bajarlas ???
> > 
> > 
> 
> Lo único que conseguirás compilando estáticamente es poder desintalar 
> las librerías y liberar disco duro, pero no RAM.
> 
> A lo mejor me equivoco, pero lo explico como yo creo que es y si alguien 
> lo sabe mejor que nos lo explique. Un programa que tiene 10k y otro con 
> 20k, si usan una librería que tiene 50k, compilados dinámicamente, los 
> dos programas corriendo ocuparan en memoria (10+20+50)k. Si los mismos 
> programas los compilas estáticamente, cuando esten corriendo, en memoria 
> te ocuparan ((10+50)+(10+50))k.
> Si no me equivoco los programas compilados dinámicamente comparten el 
> código de las librerías en memoria, mientras que los que estan 
> compilados estáticamente tienen la libreria en su propio código.
> 
> Para liberar ram creo que mejor que desactives servicios que no 
> necesites y que compiles un kernel a medida con lo mínimo que vayas a 
> necesitar. Si evitas ejecutar al mismo tiempo programas que usen 
> diferentes librerias mejor, como por ejemplo programas de KDE y Gnome.

La escasez de RAM no es un argumento para compilar estaticamentes 
los programas. Si acaso todo lo contrario.

Un programa ejecutado varias veces en un sistema ocupa en RAM una sola
vez el espacio para su código ejecutable. Las librerías compartidas 
permiten compartir código incluso cuando los programas son distintos
pero usan partes comunes en forma de librerías compartidas. Una razón
para compilar estáticamente podría ser la de obtener un binario que
funcione en cualquier distribución con indepencia de localizaciones
y versiones de librerías dinamicas. El día que las distribuciones se
pongan un poco de acuerdo en esta chorrada, cualquier binario ejecutará
en cualquier Linux y habrá una razón menos para compilar estáticamente. 

Una cosa realmente educativa es ejecutar el comando 'memstat'. Se aprecia
inmediatamente el ahorro de RAM gracias a un montón de procesos que están
compartiendo librerías.



Un saludo

Antonio Castro

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
        /\     /\      Ciberdroide Informática (Tienda de Linux)
          \\W//            <<< http://www.ciberdroide.com >>>
	 _|0 0|_                                                    
+-oOOO--(___o___)--OOOo----------------------------------------------------+ 
|  . . . . U U . . . . Antonio Castro Snurmacher  acastro@ciberdroide.com  |  
|  . . . . . . . . . .                                                     | 
+()()()----------()()()----------------------------------------------------+
| *** 1.700 sitios clasificados por temas sobre Linux en ***Donde_Linux*** |
| <<< http://www.ciberdroide.com/misc/donde/dondelinux.html >>>            |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+




Reply to: