Plataforma anti gente que usa cat fichero | grep expresión

Escrito por coder el 20 de marzo de 2006 en Informática | Hits: 1227

Es absurdo xD

Todo el día, todas las semanas, en cualquier reunión o chat de informáticos linuxeros la gente no para de hablar de "optimizar". Optimizar por aquí, optimizar por allá, que si el driver de tal dispositivo (nvidia, por ejemplo) tiene un tamaño excesivo, que si el sk_buff está cargadísimo y debería apoyarse en más structs 'externas' si cabe, etc, etc.

Y luego siempre, y repito, SIEMPRE aparece el listillo, el que no tiene ni puta idea de lo que está diciendo y en sus ponencias sobre Optimización de la pila tcp/ip de plan9 te clavan un cat fichero | grep expresion y se quedan tan panchos.

Me tiene muy quemado eso xD pero MUCHO. Estás gastando 2 execs y una tubería para algo que se puede hacer con un sólo exec xD Y además, como esto es demostrable, vamos a ello:

javi@fraga ~ $ strace -c -f -T cat /proc/cpuinfo
[...]
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
[...]
 11.47    0.000513         513         1           execve
javi@fraga ~ $


Ahí tenemos el primero, y aquí el segundo:

javi@fraga ~ $ strace -c -f -T grep sun4u /proc/cpuinfo
[...]
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
[...]
 19.51    0.000521         521         1           execve
javi@fraga ~ $


Es decir, la gente que hace eso está malgastando recursos de una forma escandalosa xD

¿Y todo por qué? Porque NADIE, repito NADIE lee nunca el manual de grep, ni de ninguna utilidad similar como cut o sort. ¿Es que nos hemos vuelto todos locos? No sirve de nada hacer un cat /etc/passwd | cut -d":" -fX. No tiene absolutamente ninguna ventaja sobre un cut a pelo, pero ninguna en absoluto xD A ver si es que alguien se cree que hacer un cut o un sort afecta al fichero abierto en modo lectura COMO SE PUEDE APRECIAR EN LA SALIDA DE CUALQUIER STRACE QUE SE HAGA.

open("/etc/passwd", O_RDONLY|O_LARGEFILE) = 3


Hala, ya lo he soltado, gracias KiBO por ser la gota que ha colmado el vaso xD



         

« Tres paletos en Bruselas: FOSDEM 2006

Reboot forzado por corte del suministro eléctrico »



Comentarios

  • El 2006-03-20 09:17:46, pollo (192.168.180) dijo:

    yo siempre he sido de cat | grep por jodida historia mas que nada por que en las primeras versiones que use de slack creo recordar que grep a secas no rulaba igual y se me ha quedado ahi la costumbre, a parte de ser un derrochador de recursos.

  • El 2006-03-20 09:26:56, HnZeKtO (0.0.0.0) dijo:

    Deja de llorar maldito marica, y arregla el feed, que apesta a UTF-8

  • El 2006-03-20 12:16:28, r0sk (217.130.44) dijo:

    Yo estoy con pollo, en slack... que cojón... el antiguo grep no permitía las posibilidades de este. El resto lo hace la costumbre y las pocas ganas de evolucionar, no somos pokemons. Plataforma PRO vagos YA.

  • El 2006-03-20 12:58:24, coder (87.219.128) dijo:

    pollo, pero tú no vas por ahí dando lecciones de optimización ni de kernel hacking xD

    HnZeKtO: done.

    r0sk & pollo: el antiguo grep permitía búsqueda en ficheros, pero bueno xD

  • El 2006-03-21 12:38:40, nrktk (80.33.65) dijo:

    Pues yo apoyo la plataforma xD y yo tambien lo hago asi, pk asi lo aprendi, no se si en slack (que si es el primer sitio dnd tire de grep) se podia o no, pero cuando me veo haciendo 'cat pura|grep mierda' pienso, "pero que haces?".

    Y no por optimizar algo, pero joder, si se puede hacer con un simple 'grep mierda pura' me ahorro pulsaciones, apoyo tambien por lo tanto la plataforma pro vagos!? xDD

  • El 2006-03-26 18:30:40, scalopus (88.5.121) dijo:

    Buenas,
    estaba leyendo un blog de un benchmark del Sun T2000, cuando he
    visto una entrada curiosa en el blog, y me he acordado de coder.
    Unas lineas y luego el link:


    date | awk -F : '{ print $1 ":" $2 }' | awk '{ print $1 " " $2 " " $3 }'

    should be:

    date +"%a %b %d"

    and this one:

    ps -ef | grep ppp | awk '{ print $2 }' | xargs kill -9

    should be:

    pkill -9 ppp


    Es muy bueno, el del pkill se sale jeje

    El link en cuestion (seguir el blog, os recomiendo la lectura
    del bechmark de la nueva Sun T2000 ;):
    http://www.stdlib.net/~colmmacc/2006/02/22/silly-one-liners/

    Saludos,
    scalopus

[ Comentar la jugada ]