Rapidez de inicio de programas y otros
Germán Poó Caamaño
gpoo en ubiobio.cl
Mie Mar 1 21:36:44 CLST 2006
On Tue, 2006-02-28 at 18:20 +0000, rodrigo ahumada montenegro wrote:
> El Mar 28 Feb 2006 18:25, Horst von Brand escribió:
> [...]
> > Si no dices con que comparas... y que tanto se demora el programa GUIistico
> > del caso en mostrar iconitos etc no es buena medida del rendimiento del
> > sistema de archivos, recuerdese que Windows usa la "genial" idea de que la
> > "extension" indica que es lo que el archivo contiene... Unix debe mirar
> > dentro, no basta el nombre. Y si la cascara grafica del caso es torpe,
> > demas la mayor parte de la demora es culpa de ella (bueno, incluso en caso
> > que no lo sea).
> ...recién iniciado, entro a mi sesion en kde (bien pesado, debe haber botado
> varias cosas de la RAM), abro un terminal y escribo: ls /usr/bin
> 1 mississippi 2 mississippi 3 mississippi 4 mississippi 5 mississippi y
> aparece el resultado.
>
> time dice
> real 0m3.892s
> user 0m0.028s
> sys 0m0.072s
>
> ovbiamente la segunda vez es casi instantáneo:
> real 0m0.155s
> user 0m0.040s
> sys 0m0.036s
>
> /usr/bin 1938 elementos
> y
> /usr/lib/ 1661 elementos.
> asi que supongo que cargar un programa por primera vez debe demorar en el peor
> caso 10 mississippis (1 por buscar el ejecutable en /usr/bin y otra por
> enlazar la primera lib.so buscandola en /usr/lib...(y a esto agregar que
> muchas son enlaces simbolicos...))
La mayor parte del tiempo estará dado en escribir en pantalla lo que
lee. Influye si usas tipografías con antialias, soporte UTF-8, algún
chiche (transparencia), etc.
> > > 2.- ya se que al usar mas cĆ³digo compartido se puede ahorrar en uso
> > > memoria (pĆ”ginas de cĆ³digo), pero para programas grandes como firefox
> > > Āæno convendrĆa que sean mas monolĆticos y usen menos bibliotecas
> > > compartidas?
> >
> > Si Firefox usa las mismas bibliotecas que otros programas graficos que usas
> > junto con el, te conviene que sean compartidas (== menos uso neto de RAM,
> > menos datos que cargar del disco, ...).
>
> toda la razón... en realidad son esos programas los que tienen bibliotecas
> propias que son poco usadas por otros programas
Para ver que archivos abre, basta aplicar strace. No sólo bibliotecas
deben cargarse.
Por ejemplo, sólo cargar y cerrar OpenOffice (no en frío):
$ strace -T -f -c -e trace=file oowriter2
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
28.89 0.040532 9 4330 3118 access
27.77 0.038957 16 2375 1186 open
21.63 0.030350 10 3000 37 lstat64
11.44 0.016049 11 1465 801 stat64
4.70 0.006588 6 1026 fstat64
2.69 0.003772 377 10 execve
1.35 0.001893 126 15 unlink
0.79 0.001107 12 93 getcwd
0.43 0.000603 46 13 12 mkdir
0.19 0.000266 33 8 readlink
0.06 0.000087 87 1 rmdir
0.05 0.000071 18 4 chdir
0.01 0.000012 12 1 utime
0.01 0.000008 1 8 rename
------ ----------- ----------- --------- --------- ----------------
100.00 0.140295 12349 5154 total
Idem con firefox:
$ strace -T -f -c -e trace=file firefox
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
44.57 0.020832 22 958 374 open
25.69 0.012005 19 644 463 access
16.39 0.007659 17 456 61 stat64
7.92 0.003702 6 592 fstat64
1.60 0.000749 375 2 execve
0.99 0.000465 155 3 rename
0.98 0.000459 153 3 unlink
0.75 0.000351 12 29 4 lstat64
0.38 0.000178 178 1 chmod
0.38 0.000177 177 1 symlink
0.25 0.000117 23 5 5 mkdir
0.06 0.000027 27 1 utime
0.04 0.000017 17 1 getcwd
------ ----------- ----------- --------- --------- ----------------
100.00 0.046738 2696 907 total
Así no es necesario especular cuantos archivos abre y cuantos
no :-)
--
Germán Poó-Caamaño
http://www.ubiobio.cl/~gpoo/
Concepción - Chile
Más información sobre la lista de distribución Linux