gzip et pipe to output (considérations de performance)

q1) Puis-je vérifier si je fais un fichier gzip -c | chiffrer (certains parameters)

a) gzip imprime-t-il la ligne de sortie ligne par ligne et la dirige-t-elle vers la fonction de chiffrement ou

b) gzip sera exécuté en premier, puis la sortie sera tout à la fois à la fonction encrypt?

================================================== ==

q2) va effectuer gzip | chiffrer avoir de meilleures considérations de performances alors gzip, puis chiffrer

Cordialement, Noob

Gzip est un compresseur / décompresseur en streaming. Donc, pour des entrées suffisamment importantes, le compresseur / décompresseur commence à écrire la sortie avant d’avoir vu toute l’entrée.

C’est l’une des raisons pour lesquelles la compression gzip est utilisée pour la compression HTTP. L’expéditeur peut compresser pendant qu’il génère encore du contenu; le destinataire peut décompresser la première partie du contenu tout en recevant le rest.

Gzip ne fonctionne pas “ligne par ligne”, car il ne sait pas ce qu’est une ligne. Mais cela fonctionne “chunk-by-chunk”, où le compresseur définit la taille du morceau.

“Performance” est un mot trop vague et trop complexe pour donner une réponse par oui ou par non.

Avec le gzip -c file | encrypt gzip -c file | encrypt , pour un fichier assez grand, verra encrypt et gzip fonctionner simultanément. En d’autres encrypt , encrypt chiffrera le premier bloc compressé avant que gzip comprime le dernier morceau de fichier.

La taille d’un tampon de tube dépend de l’implémentation. Sous SunOS, il y a 4 Ko. C’est-à-dire: gunzip < file.gz | encrypt gunzip < file.gz | encrypt se déplacera en morceaux de 4k. Encore une fois, cela dépend du système d'exploitation. CygWIN peut se comporter complètement différemment.

Je devrais append que c'est dans l' man 7 pipe . Recherchez PIPE_BUF .