Rapidez de inicio de programas y otros

rodrigo ahumada montenegro rodahummont en yahoo.com.ar
Mie Mar 1 16:13:27 CLST 2006


El Mié 01 Mar 2006 20:06, Horst von Brand escribió:

[...]
>
> Raro. Aca es 2,2s vs 1,9s, o sea nunca tanta diferencia (demas se explica
> por otras actividades en este cacharro). Y sospecho que es mas que nada el
> tiempo escribir la lista de nombres el culpable...
>
> Yep, "ls /usr/bin > /dev/null" se demora 0,1s.
>
si, despues de enviar, me di cuenta también, ls sobre un elemento de /usr/bin 
es mas rápido que listar todos...

> > asi que supongo que cargar un programa por primera vez debe demorar en el
> > peor caso 10 mississippis
>
> Supongo es tu medida de tiempo, +/- 1[s]?

es que al ultimo me acordé que existía time

[...]
> >                                                                   y otra
> > por enlazar la primera lib.so buscandola en /usr/lib...
>
> Podria ser, si es una biblioteca inmensa de la que se usan muchos simbolos.
> No es el caso aca... ldd(1) te da el detalle de las bibliotecas a que un
> ejecutable hace referencia, en este caso mas que nada piezas de glibc.
>

mmm... sí, firefox-bin: 38, todas vienen de /usr/lib y /lib excepto 5 que son 
exclusivas de firefox. no son muy grandes ( a lo mas unos 700k)

si fuera por la cantidad de simbolos a enlazar, ¿no debería demorar aprox. lo 
mismo en la primera y siguientes cargadas?

de todas formas  ya me di cuenta que ext3 no tiene la culpa.

> >                                                        (y a esto agregar
> > que muchas son enlaces simbolicos...))
>
> No hace mayor diferencia.
>
> > (aquĆ­ soy ignorante: cuando se enlaza una biblioteca de nombre $X,
> > forzosamente debe ejecutarse un "ls /usr/lib" y despuƩs se averigua si
> > la biblioteca ya estaba en RAM, o la biblioteca en RAM guarda su nombre
> > $X para evitar el tener que listar /usr/lib y contar hasta el quinto
> > mississippi?)
>
> Se mmap(2)ea la biblioteca (el archivo) a RAM, y el sistema de memoria
> virtual se da cuenta que ya esta, solito y sin ayuda. Es precisamente el
> mecanismo que se usa para que sean bibliotecas _compartidas_.
>

para identificar que es el mismo archivo, ¿usa la ruta (string) o el número de 
bloque de disco? 

(de primera supongo que el número de bloque para ser independiente del sistema 
de archivos, pero ¿qué pasaría con nfs?...)

> > [...]
> >
> > > Exacto. Uno de los graves problemas con Win es precisamente que todo el
> > > mundo y su abuelita arrastra /sus/ versiones de cuanta DLL existe, para
> > > evitar que por versiones diferentes el programa falle.
> >
> > tambiƩn cada programa instala sus dll en su propio directorio en
> > archivos de prog., entonces al momento de enlazar las dll no se darĆ­a el
> > problema de arriba de demorarse casi 4 seg. buscando en /usr/lib...
>
> En ambos casos tiene que ubicar el archivo del caso en el directorio... y
> /no/ se comparte en RAM.

		
________________________________________________
¡Llamá a todo el mundo con las mejores tarifas!
Comprá tus tarjetas de llamadas en tres simples pasos
en Yahoo! Telefonía: http://yahoo.tarjetastelefonicas.com



Más información sobre la lista de distribución Linux