Newsgroup: it.comp.os.linux.sys
Titolo: user or real?

Sto cercando di realizzare un piccolo benchmark sugli algoritmi di 
compressione e mi sono sorti alcuni dubbi, su come interpretare i 
risultati datomi da "time"
Pongo un esempio per facilitare le cose: ho un file che si chiama 
access2.log e ho una copia di questo dentro ad una directory di nome a
---------------------------------------------------------------------------
[prometeus@helvete:/mnt/test/temp]$ ls -l access2.log a
     -rwxr-xr-x  1 prometeus users  22M Dec 11 10:57 access2.log
     a:
     total 22M
     -rwxr-xr-x  1 prometeus users 22M Dec 11 10:58 access2.log
---------------------------------------------------------------------------
ora faccio  un paio di operazioni.
 
---------------------------------------------------------------------------
     [prometeus@helvete:/mnt/test/temp]$ time bzip2 -1 -k access2.log
     real    0m15.368s
     user    0m12.709s
     sys     0m0.136s
     [prometeus@helvete:/mnt/test/temp]$ time bzip2 -1 -kc access2.log > 
yep2.bz2
     real    0m20.508s
     user    0m12.704s
     sys     0m0.167s
     [prometeus@helvete:/mnt/test/temp]$ time tar cf - a | bzip2 -1 -kc 
 > yep.bz2
     real    0m16.717s
     user    0m12.692s
     sys     0m0.253s
---------------------------------------------------------------------------
Come potete vedere il valore real subisce delle visibili variazione 
anche se le operazioni fatte sono simili (le prime due sono praticamente 
identiche). E' vero che non ho lanciato questi comandi in un ambiente 
imperurbato (avevo x aperto e magari switchavo da una finestra 
all'altra...e ovviamente quando farò il benchmark non sarò certo in una 
situazione del genere), ma noto anche che invece i valori "user" siano 
vicinissimi (scarti dell'ordine dello 0,1%).
A questo punto mi sorge il dubbio: quando dovrò analizzare le 
prestazioni di tali algoritmi dovrò prendere in considerazione il valore 
"user", "real" o "user + sys"?.
Dal man del binario time (non del built-in della bash)
si evince, dalla enumerazione dei possibili formati di output, ciò:
---------------------------------------------------------------------------
Time
            %E     Elapsed real time (in [hours:]minutes:seconds).
            %e     (Not in tcsh.) Elapsed real time (in seconds).
            %S     Total number of CPU-seconds that the process spent in 
kernel mode.
            %U     Total number of CPU-seconds that the process spent in 
user mode.
            %P     Percentage of the CPU that this job got, computed as 
(%U + %S) / %E.
---------------------------------------------------------------------------
A questo punto mi verrebbe da scartare il valore "real", poichè è 
comunque perturbabile, e prenderei in considerazione "user + sys", 
poichè sono valori imperurbabili da altri fattori, dato che sono 
riferiti esclusivamente al tal processo.
Cosa consigliereste voi?

 comunque perturbabile, e prenderei in considerazione "user + sys",
Corretto.
-- 
Flavio Visentin
Membro del CICAP
Comitato Italiano per il Controllo delle Affermazioni di P4

Dovrei fare una cosa simile alla tua... Solamente che io dovrei controllare 
il tempo che un computer remoto impiega ad aprire un file via NFS salvarci i 
dati e poi richiuderlo.
Questo mi servirebbe per avere un riscontro con delle "SGI" che mi fanno dei 
render 3D...
Credi che lo possa fare o devo trovare qualche altro sistema?
Ciao, Keres.