Visualizzazione dei risultati da 1 a 3 su 3

Discussione: time: real o user?

  1. #1

    time: real o user?

    Sto realizzando un benchmark sugli algoritmi di compressione e mi sono sorti alcuni dubbi.
    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

    codice:
    [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 vediamo un paio di operazioni.

    codice:
    [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ò:


    codice:
    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 imperurbabilti da altri fattori, dato che sono riferiti esclusivamente al tal processo.
    Cosa consigliereste voi?
    A forza di seguire la corrente si finisce in qualche fogna
    -- M.Connelly

    http://www.syn-ack.it

  2. #2
    up
    A forza di seguire la corrente si finisce in qualche fogna
    -- M.Connelly

    http://www.syn-ack.it

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    31
    Guarda non so quale sia in realta` l'obiettivo del tuo benchmark, ma in realta` le scelte sono poche e si selezionano automaticamente in base al dove vuole arrivare il tuo studio.
    Diciamo che se vuoi uno studio in valore assoluto rispetto all'algoritmo di compressione ed il suo tempo di vita in kernel + user space nonche` il tempo in cui il processo ha le risorse, la risposta te la sei data da solo. Ma se in realta` vuoi misurare l'algoritmo di compressione piu` la perdita (dovuta alle interruzioni e altre operazioni solitamente in kernel space) il real fa per te. Mi viene da fare solo una considerazione per la seconda opzione ovvero sul real. Considera che non esiste un processo non soggetto a variazioni se non il kernel stesso. La variabilita` dell'esecuzione del processo e` dovuta alla priorita` del processo e l'esecuzione dello stesso in un contesto di esecuzione che e` quello corrente. Quindi magari uno studio un tantino piu` approfondito sulla stima delle variazioni in contesti idealmente uguali non sarebbe una cattiva idea, magari riesci a generalizzare la variazione in base alla variazione del contesto di esecuzione dando la possibilita` sia di far diventare piu` interessante la ricerca per te, che per dare una alternativa e quindi rendere piu` dettagliata e completa la tua ricerca.

    tutto questo IMHO ovviamente sta a te valutare gli obiettivi del benchmark

    Spero che il mio consiglio sia stato utile
    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.