rendimiento de scripts
Hola,
Al hilo de obtener la carga de cpu, me ha surgido una duda de la que
siempre he odido hablar. Siempre se ha dicho que un programa en C, es
más rápido que un script grande... Incluso en gentoo había un proyecto
para migrar los scripts de arranque a programas en C con ficheros de
configuración, percisamente para optimizar el tiempo de arranque...
El caso es que si nos ponemos manos a la obra:
[inigo][imac]:~/work/c/holamundo $ time ./holamundo
Hola mundo.
real 0m0.001s
user 0m0.000s
sys 0m0.000s
[inigo][imac]:~/work/c/holamundo $ time echo "Hola mundo."
Hola mundo.
real 0m0.000s
user 0m0.000s
sys 0m0.000s
Con un built-in, el resultado es más rápido. Claro que en el momento que
nos salimso de un built-in:
[inigo][imac]:~/work/c/holamundo $ time cat <<EOT
> Hola mundo.
> EOT
Hola mundo.
real 0m0.001s
user 0m0.000s
sys 0m0.000s
No es más rápido. Imagino que porque cat, depende de las mismas tres
librerias que dependía holamundo. He probado el holamundo compilado de
manera estática y también con optimización de nivel 2 y 3, pero siempre
es más lento.
No tengo capacidad ni ganas para transcribir un script grande (digamos
p.ej. de más de 100 lineas y que llame a otros scripts) a C en estado
puro, usando solo librerías y no programas externos, pero...
¿es realmente C más rápido que bash? ¿o depende de las circunstancias?
Saludos
Reply to: