Prikaz time

Milos Urbanek urbanek at openbsd.cz
Wed Aug 7 11:20:49 CEST 2002


On Wed, Aug 07, 2002 at 02:00:06AM +0200, Leo Galambos wrote:
> Zdravim,
> 
> mam mozna vice obecny problem nez problem primo s freeBSD. Potreboval bych
> nejak rozhodnout, ktery program je "lepsi" (tedy na zaklade empirickych
> hodnot rict kvalifikovane odpoved - nikoliv dohad).  Zkousel jsem to s
> prikazem `time`, ale nechapu moc jeho vystup - jinymi slovy neumim
> "precist" nastavajici situaci:
> 
> Program A dava pro time(1) radove tyto hodnoty:
> real	RA hodin
> user	UA minut
> sys	SA sekund
> 
> Program B dava:
> real, user a sys postupne RB, UB, SB
> 
> Situace je tato:
> RA     = 3 * RB
> UA     = 3/4 * UB
> SA * 3 = SB
> 
> Cemu nerozumim je obracena umera u real a sys casu, takze pak nevim co je
> vlastne lepsi. Take si nejsem jist jestli lze neco vyvodit z pomeru UA/SA
> a UB/SB. Znamena to, ze u A se stroj mene nadre? Znamena to, ze na
> silnejsim stroji se vice "zrychli" A nez B?
> 
> Ze je doba behu programu A trikrat delsi nez u B me moc netrapi, jestli je
> ale A lepe "stravitelny" pro vlastni O/S (a bezi tak s mensimi naroky).
> 
> Uvitam jakoukoliv radu nebo odkaz, kde lze zjistit podrobnosti jak ta
> namerena cisla vlastne "precist".

Nechci vestit, jestli A je lepsi nez B, ale pri pohledu do zdrojaku
bych rek, ze time(1) funguje takto:

real time je celkovy cas, ktery ubehne od stusteni programu 
do jeho ukonceni - tzn. od spusteni prikazu time(1) az do jeho ukonceni.

user time je cas, po ktery bezi spusteny program (A nebo B) v user modu.
system time je cas, po ktery bezi spusteny program v rezimu jadra.

zrejme 
realtime >= user time + system time

vetsinou ale realtime >>  user time + system time, protoze do real time
je zapocitana i doba, kdy spusteny proces ceka a system nezatezuje.

tak nejak neurcite lze rici, ze kdyz je 
* realtimeA < realtimeB, tak celkovy beh programu A je pomalejsi
* systemtimeA < systemtimeB, tak program A tolik nezatezuje system
vyrizovanim systemovych volani a je rekneme 'setrnejsi' k dalsim procesum,

* usertimeA < usertimeB, tak program A neprovadi natolik komplexni nebo
zdlouhavy vypocet jako program B.

jinak co se tyce toho vesteni, jestli " A lepe "stravitelny" pro vlastni
O/S" a jak vlastne interpretovat vztah mezi narustem vykonu a temito
cisly, tak tady opravdu o tom nelze rici nic urciteho, pokud nezmapujete
chovani programu, nepustite na to nejaky profiler, ktrace apod.
time(1) da jenom informaci o zkonzumovanem case; nic vic..

hope that helps.

Milos

-- 




More information about the Users-l mailing list