Portál AbcLinuxu, 10. května 2025 10:00

Dotaz: time - soucet system a user time

Kamil Páral avatar 2.4.2009 12:44 Kamil Páral | skóre: 13 | blog: Kamil Páral | Brno
time - soucet system a user time
Přečteno: 339×
Odpovědět | Admin

Zdravím,

když měříte využití procesoru nějakým procesem, tak většinou to děláte pomocí příkazu

$ time příkaz

real    0m0.196s
user    0m0.148s
sys    0m0.040s

Pokud vám jde o procesorovou náročnost, tak samozřejmě real (elapsed) time je nerelevantní, ale díváte se na součet user+system time (souhrně nazýváno cpu time). Ví někdo o způsobu, jak donutit příkaz time (bashovská verze, případně /usr/bin/time) aby vypisoval rovnou i daný součet user+system time? Protože když něco benchmarkujete a ladíte, tak neustále tyto časy ručně sčítat je strašná pruda.

Vím, že by na to šel napsat nějakej skript, ale docela mě překvapuje, že na to nemůžu najít žádný option případně formatting option přímo u daných příkazů. Případně na to pravděpodobně už nějaká externí utilita existuje?

Díky.

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

2.4.2009 15:01 l4m4
Rozbalit Rozbalit vše Re: time - soucet system a user time
Odpovědět | | Sbalit | Link | Blokovat | Admin
Bashovská verze je pěkná v tom, že bere pipeline, což normální příkaz špatně napodobuje (přinejmenším to nejde se stejnou syntaxí). Takže bych asi opatchoval bash, neměl by to být problém, a používal ho, když potřebuji tohle...
2.4.2009 15:14 l4m4
Rozbalit Rozbalit vše Re: time - soucet system a user time
Příloha:
Např. takto.
2.4.2009 15:15 l4m4
Rozbalit Rozbalit vše Re: time - soucet system a user time
Chm, oštetření ssf + usf > 1s nechávám za domácí úkol :o)
Kamil Páral avatar 8.4.2009 14:06 Kamil Páral | skóre: 13 | blog: Kamil Páral | Brno
Rozbalit Rozbalit vše Re: time - soucet system a user time

Udržovat vlastní verzi softwaru se mi teda moc nechce, ale i tak díky za řešení. To to opravdu lidé běžně nepotřebují? :-)

8.4.2009 21:30 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: time - soucet system a user time
Odpovědět | | Sbalit | Link | Blokovat | Admin
A co to z toho vygrepovat a sečíst?
In Ada the typical infinite loop would normally be terminated by detonation.
Kamil Páral avatar 9.4.2009 01:21 Kamil Páral | skóre: 13 | blog: Kamil Páral | Brno
Rozbalit Rozbalit vše Re: time - soucet system a user time

 

Vím, že by na to šel napsat nějakej skript, ale docela mě překvapuje, že na to nemůžu najít žádný option případně formatting option přímo u daných příkazů. Případně na to pravděpodobně už nějaká externí utilita existuje?

 

9.4.2009 10:48 l4m4
Rozbalit Rozbalit vše Re: time - soucet system a user time
Problém je, že u takového řešení je potíž zachovat použití

time PIPELINE

kterou umožňuje built-in bashe time.

Mně osobně upravený bash nebo skript připadá nastejno, protože upravený bash není třeba nijak udržovat. Prostě ho použiji, když chci měřit čas, a na to stačí i stará verze...

Další možnost je opravit můj patch, aby sčítal správně i při přetečení přes 1s, zrušit z něj změnu výchozího nastavení formátu time a poslat ho maintainerům bashe. Řekl bych, že šanci to má. Já to dělat nebudu, protože já to nepotřebuji.
9.4.2009 13:22 blondak | skóre: 36 | blog: Blondak | Čáslav
Rozbalit Rozbalit vše Re: time - soucet system a user time
Odpovědět | | Sbalit | Link | Blokovat | Admin

třeba takto

 

/usr/bin/time --format "%S\t%U" příkaz 2>&1 1> /dev/null | awk '{ print $1 + $2 };'

 

Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
Kamil Páral avatar 10.4.2009 00:52 Kamil Páral | skóre: 13 | blog: Kamil Páral | Brno
Rozbalit Rozbalit vše Re: time - soucet system a user time

Zajímavé. Akorát jsem ztratil výstup příkazu. Ale díky.

10.4.2009 02:01 Ash | skóre: 53
Rozbalit Rozbalit vše Re: time - soucet system a user time
u GNU time lze výstup hodit do souboru, a za rourami třeba z toho souboru zase přečíst a sečíst
10.4.2009 09:57 l4m4
Rozbalit Rozbalit vše Re: time - soucet system a user time
Proč se tak bráníte myšlence, že když váš oblíbený program neumí, co chcete, je třeba ho opravit, aby to uměl? Obzvlášť existuje-li přesvědčení, že tuto funkci bude chtít více lidí.
11.4.2009 17:57 Ash | skóre: 53
Rozbalit Rozbalit vše Re: time - soucet system a user time
Nic takového zcela jistě nedělám :) Snad jen že opravuji jen rozbité věci, které přestaly dělat (nebo nikdy nedělaly) to, co bylo záměrem jejich tvůrce, věci které fungují spíš upravuji.
11.4.2009 18:37 l4m4
Rozbalit Rozbalit vše Re: time - soucet system a user time
Když to nedělá, co chci já, tak to přece musí být rozbité :o)
10.4.2009 11:20 blondak | skóre: 36 | blog: Blondak | Čáslav
Rozbalit Rozbalit vše Re: time - soucet system a user time

Pokud potřebuješ výstup z programu, pak by to šlo řešit třeba takto:

/usr/bin/time --format "__timer__\t%S\t%U" příkaz 2>&1 | awk '{ if ($1 == "__timer__") print "Výsledný čas:",$2 + $3," sec"; else print $0 }'
Každý problém ma své logické, snadno pochopitelné nesprávné řešení.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.