Portál AbcLinuxu, 10. května 2025 10:00
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.
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í?
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?
třeba takto
/usr/bin/time --format "%S\t%U" příkaz 2>&1 1> /dev/null | awk '{ print $1 + $2 };'
Zajímavé. Akorát jsem ztratil výstup příkazu. Ale díky.
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 }'
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.