Donc il faut arrêter avec les UUOC et autres bêtises.
C'est une manière de dire que lire les man c'est vachement instructif même quand on crois connaître une commande (donc même sur ls par exemple).
Ensuite pour les performances. Ça ne pose aucun souci de multiplier les pipe c'est assez logique car on lance simplement 2 processus en pipe leur entrée/sortie standard. Ça ne coûte pas grand chose. Par contre tu vois les choses très différemment si tu as tout ça dans une boucle ou plus sérieusement dans un script lancé via xargs. Il y a un moment où le coût des fork() va avoir un impact non négligeable sur les performances (de l'ordre de 30 % dans le cas que j'avais observé) en réduisant au maximum les commandes externe pour les remplacer soit par une commande builtin soit par une seule commande externe, on a eu un gain assez important. C'était un cas un peu extrême mais qui a existé.
Enfin les pipe peuvent au contraire augmenter les performances. Lancer une commande qui met un temps t a traiter chaque ligne est moins intéressant que lancer 2 commandes avec un pipe qui mettent chacune un temps t/2 pour faire le boulot.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: 42
Posté par barmic . En réponse au sondage Les commentaires et vous ?. Évalué à 3.
C'est une manière de dire que lire les man c'est vachement instructif même quand on crois connaître une commande (donc même sur ls par exemple).
Ensuite pour les performances. Ça ne pose aucun souci de multiplier les pipe c'est assez logique car on lance simplement 2 processus en pipe leur entrée/sortie standard. Ça ne coûte pas grand chose. Par contre tu vois les choses très différemment si tu as tout ça dans une boucle ou plus sérieusement dans un script lancé via xargs. Il y a un moment où le coût des
fork()va avoir un impact non négligeable sur les performances (de l'ordre de 30 % dans le cas que j'avais observé) en réduisant au maximum les commandes externe pour les remplacer soit par une commande builtin soit par une seule commande externe, on a eu un gain assez important. C'était un cas un peu extrême mais qui a existé.Enfin les pipe peuvent au contraire augmenter les performances. Lancer une commande qui met un temps
ta traiter chaque ligne est moins intéressant que lancer 2 commandes avec un pipe qui mettent chacune un tempst/2pour faire le boulot.Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)