Conversion d'images. Analyse de performances

Vos petites astuces, répertoire des tutoriels et astuces
Répondre
Avatar du membre
cyrille
Administrateur du site
Messages : 12399
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Conversion d'images. Analyse de performances

Message par cyrille »

xargs vs parallel vs boucle bash

Reflexion sur le temps et charge processus d'une commande.
Cas concret : convertir un ensemble de fichiers PNG en GIF

Echantillon :
240 fichiers générés aléatoirement pour un total disque de 7,5 Mo

Code : Tout sélectionner

du -sh
7,5M	
.

Code : Tout sélectionner

ls -l | wc -l
240


Avec XARGS

Code : Tout sélectionner

$ time  ls -1 *.png  |  xargs -n 1 bash -c 'convert "$0" "${0%.*}.gif"' 

real	0m30,057s
user	0m30,858s
sys	0m4,422s


BOUCLE SHELL TYPIQUE

Code : Tout sélectionner

$ time ls -1 *.png | parallel -j 3 convert '{}' '{.}.gif'

real	0m28,761s
user	0m54,001s
sys	0m20,123s


AVEC PARALLEL

Code : Tout sélectionner

$ time ls -1 *.png | parallel  convert '{}' '{.}.gif'

real	0m25,827s
user	0m56,121s
sys	0m21,074s


real fait référence au temps réel écoulé;
user et sys font référence au temps CPU utilisé uniquement par le processus.

Le temps real est l'horloge du PC - le temps du début à la fin de l'appel. Il s'agit de tout le temps écoulé, y compris les tranches de temps utilisées par d'autres processus et le temps que le processus passe bloqué (par exemple s'il attend la fin des E / S).

Le temps user est la quantité de temps CPU passé en code en mode utilisateur (en dehors du noyau) dans le processus. Il s'agit uniquement du temps CPU real utilisé lors de l'exécution du processus. Les autres processus et le temps que le processus passe bloqué ne comptent pas dans ce chiffre.

Le temps sys est la quantité de temps CPU passé dans le noyau au sein du processus. Cela signifie exécuter le temps CPU passé dans les appels système au sein du noyau, par opposition au code de bibliothèque, qui s'exécute toujours dans l'espace utilisateur. Comme «user», il s'agit uniquement du temps CPU utilisé par le processus.


User + Sys
vous indiqueront combien de temps CPU réel votre processus a utilisé. Notez que cela concerne tous les processeurs, donc si le processus a plusieurs threads (et que ce processus s'exécute sur un ordinateur avec plus d'un processeur), il peut potentiellement dépasser le temps d'horloge murale signalé par Real (ce qui se produit généralement). Notez que dans la sortie, ces chiffres incluent le temps utilisateur et Sys de tous les processus enfants (et leurs descendants) ainsi que le moment où ils auraient pu être collectés, par exemple par wait (2) ou waitpid (2), bien que les appels système sous-jacents renvoient séparément les statistiques du processus et de ses enfants.


Gardez à l'esprit que réel représente le temps réel écoulé, tandis que les valeurs user et sys représentent le temps d'exécution du processeur. Par conséquent, sur un système multicœur, le temps de l'utilisateur et / ou du système (ainsi que leur somme) peut réellement dépasser le temps réel.


Bon voilà c'était juste au passage...
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Avatar du membre
david37
modérateur
Messages : 3884
Enregistré le : lun. 22 août 2016 05:06

Re: Conversion d'images. Analyse de performances

Message par david37 »

Super explication! très claire et enfin je comprend la différence entre les trois temps ;)
Merci beaucoup :D
PC1: Mobo: Gigabyte B550 AORUS Elite 2 / CPU: AMD Ryzen 7 3700X / GPU: MSI Radeon RX 580 Armor / RAM: 32 GB @3600 MHz CL16 / SSD: Samsung 970 EVO 500 GB / LM 20.2 Xfce
PC2: HP Pavilion 15 / AMD Ryzen 5 5500U with Radeon Graphics / 16GB RAM / 500 GB SSD / Debian 11 Xfce
PC3: Dell-Latitude E7240 / 2.1GHz i7-4600U / Intel Haswell-ULT HD 4400 / 8GB RAM / 250 GB Hard Drive / LM 20.2 Xfce

Avatar du membre
cyrille
Administrateur du site
Messages : 12399
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Conversion d'images. Analyse de performances

Message par cyrille »

Merci David, ;)
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Répondre