Portál AbcLinuxu, 4. května 2025 13:28

Program time a cas user > real?

18.6.2020 20:20 | pikošky | poslední úprava: 18.6.2020 19:42

Viete, ako sa dosiahnuť, aby pri meraní času behu programu bol čas user väčšie ako real?
real	3m18,417s
user	3m23,219s
sys	0m1,978s
       

Hodnocení: 0 %

        špatnédobré        

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

Komentáře

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

Vložit další komentář

18.6.2020 20:36 _
Rozbalit Rozbalit vše Re: Program time a cas user > real?
Odpovědět | Sbalit | Link | Blokovat | Admin
Běh na více jádrech třeba?
18.6.2020 20:37 JS1 | skóre: 2 | blog: intuition_pump
Rozbalit Rozbalit vše Re: Program time a cas user > real?
Odpovědět | Sbalit | Link | Blokovat | Admin
Nejsem expert na Linux, ale je mozne, ze za to muze multiprocessing nebo hyperthreading? User se meri jako skutecny spotrebovany CPU cas na vsech procesorech, zatimco celkovy cas se meri jako cas realny, po ktery proces bezel a vyuzival procesor (byl dispatchovan).

(Bohuzel knizku, v ktere by to mohlo byt, mam v praci a tam ted nemuzu.)
Lidstvo čelí v tomto století hrozbě civilizačního kolapsu. Podpořte hnutí klimatickakoalice.cz!
Fluttershy, yay! avatar 18.6.2020 21:03 Fluttershy, yay! | skóre: 93 | blog:
Rozbalit Rozbalit vše Re: Program time a cas user > real?
(Bohuzel knizku, v ktere by to mohlo byt, mam v praci a tam ted nemuzu.)
libgen?
🇵🇸Touch grass🇺🇦 ✊ ani boha, ani pána
19.6.2020 01:22 JS1 | skóre: 2 | blog: intuition_pump
Rozbalit Rozbalit vše Re: Program time a cas user > real?
Jo, vidis, to je napad. :-)

Nekoukal jsem do ni, ale je to Systems Performance od Brendana Gregga.
Lidstvo čelí v tomto století hrozbě civilizačního kolapsu. Podpořte hnutí klimatickakoalice.cz!
18.6.2020 23:28 marbu | skóre: 31 | blog: hromada | Brno
Rozbalit Rozbalit vše Re: Program time a cas user > real?
Přesně tak:
$ time stress-ng --cpu 2
stress-ng: info:  [8790] defaulting to a 86400 second run per stressor
stress-ng: info:  [8790] dispatching hogs: 2 cpu
^Cstress-ng: info:  [8790] successful run completed in 4.92s

real	0m4.934s
user	0m9.807s
sys	0m0.012s
There is no point in being so cool in a cold world.
19.6.2020 07:36 JS1 | skóre: 2 | blog: intuition_pump
Rozbalit Rozbalit vše Re: Program time a cas user > real?
Vlastne jsem to napsal ne uplne presne (v manualu pro time je to trochu vysvetlene), real je wall-clock time, coz znamena, ze i jakekoli cekani procesu (kdy nevyuziva CPU) by do nej melo byt zahrnuto.
Lidstvo čelí v tomto století hrozbě civilizačního kolapsu. Podpořte hnutí klimatickakoalice.cz!
19.6.2020 09:05 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Program time a cas user > real?
Když místo "time" (což je builtin bashe) použijete "/usr/bin/time", tak tam místo "real" bude "elapsed", což je možná trochu názornější.
mike@unicorn:~> time sleep 3

real    0m3,002s
user    0m0,001s
sys     0m0,000s
mike@unicorn:~> /usr/bin/time sleep 3
0.00user 0.00system 0:03.00elapsed 0%CPU (0avgtext+0avgdata 2016maxresident)k
0inputs+0outputs (0major+98minor)pagefaults 0swaps
19.6.2020 08:51 z_sk | skóre: 34 | blog: analyzy
Rozbalit Rozbalit vše Re: Program time a cas user > real?
Vedel by si to dat iba so zakadnymi nastrojmi v systeme?
debian.plus@protonmail.com
19.6.2020 08:52 z_sk | skóre: 34 | blog: analyzy
Rozbalit Rozbalit vše Re: Program time a cas user > real?
Vedel by si to dat iba so zakladnymi nastrojmi v systeme?
debian.plus@protonmail.com
Gilhad avatar 19.6.2020 18:11 Gilhad | skóre: 20 | blog: gilhadoviny
Rozbalit Rozbalit vše Re: Program time a cas user > real?
# cd /usr/src/linux;time make -j26
  DESCEND  objtool
  CALL    scripts/atomic/check-atomics.sh
  CALL    scripts/checksyscalls.sh
  CHK     include/generated/compile.h
  Building modules, stage 2.
  MODPOST 36 modules
Kernel: arch/x86/boot/bzImage is ready  (#9)

real	0m2.157s
user	0m11.164s
sys	0m5.057s
Josef Kufner avatar 19.6.2020 09:05 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Program time a cas user > real?
Základní nástroje snad všechny jsou jednovláknové a na každou blbost spouští nové procesy. V tom se bude něco takového hledat těžko.
Hello world ! Segmentation fault (core dumped)
19.6.2020 09:32 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Program time a cas user > real?

Především by se muselo definovat, co jsou to "základní nástroje". Můžu udělat třeba

  mike@unicorn:~> yes aes-128-cbc | head -24 | time xargs -P 24 -n 1 openssl speed
  ...
  431.96user 0.02system 0:18.02elapsed 2397%CPU (0avgtext+0avgdata 5420maxresident)k
  0inputs+0outputs (0major+7052minor)pagefaults 0swaps

ale je to dost "základní"?

19.6.2020 10:15 z_sk | skóre: 34 | blog: analyzy
Rozbalit Rozbalit vše Re: Program time a cas user > real?
hm,
$ yes aes-128-cbc | head -24 | time xargs -P 24 -n 1 openssl speed
bash: time: príkaz nenájdený
Vsetko co pojde v normalne vychodiskovom nainstalovanom systeme alebo LIVE.
debian.plus@protonmail.com
19.6.2020 10:27 JS1 | skóre: 2 | blog: intuition_pump
Rozbalit Rozbalit vše Re: Program time a cas user > real?
No kdyz tam nemas "time" tak ho asi nepustis. Leda ze bys to nejak nahradil tim "time" uvnitr bashe.
Lidstvo čelí v tomto století hrozbě civilizačního kolapsu. Podpořte hnutí klimatickakoalice.cz!
19.6.2020 13:58 z_sk | skóre: 34 | blog: analyzy
Rozbalit Rozbalit vše Re: Program time a cas user > real?
$ type time
time je kľúčové slovo shellu
$ which time
$ 
debian.plus@protonmail.com
19.6.2020 14:04 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Program time a cas user > real?

Já ho tu mám:

  mike@lion:~> type time
  time is a shell keyword
  mike@lion:~> which time
  /usr/bin/time
  mike@lion:~> rpm -qf `which time`
  time-1.9-lp152.3.5.x86_64

Abych pravdu řekl, příkaz time jsem vždycky bral jako jednu ze zcela základních utilit (podobně jako třeba true, false nebo test, které má bash také jako builtin) a nenapadlo mne, že by někde mohl nebýt.

19.6.2020 14:05 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Program time a cas user > real?
…takže mne trochu překvapilo, že je to samostatný balíček a ne třeba součást coreutils nebo něčeho takového.
Josef Kufner avatar 19.6.2020 10:48 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Program time a cas user > real?
xargs -P je hezký příklad.

Gratuluji, našel jsi výjimku, kterou jsem naznačil tím "snad".
Hello world ! Segmentation fault (core dumped)
19.6.2020 10:58 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Program time a cas user > real?
Takový make taky umí paralelizovat docela pěkně. :-)
Jendа avatar 19.6.2020 16:43 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Program time a cas user > real?
Nikdo ti nebrání pustit si v (sub)shellu třeba deset yes>/dev/null současně.
/usr/bin/time bash -c "yes > /dev/null& yes > /dev/null& yes > /dev/null"
20.6.2020 00:22 kvr
Rozbalit Rozbalit vše Re: Program time a cas user > real?
xargs -P není vyjímka, pořád je "základní" a pořád jednovláknový.

Ano, všechny "základní" nástroje jsou sice jednovláknové, ale dokážou spouštět podprocesy paralelně (i když ty mohou být pořád jednovláknové. I základní shell shell umí pouštět podprocesy na pozadí a pak na ně počkat. A time reportuje čas včetně dětí. Možná i obyčejné true | true bude mít větší user time, záleží na overhead...
Jendа avatar 20.6.2020 01:23 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Program time a cas user > real?
A time reportuje čas včetně dětí.
Proč tedy ten můj příklad s openssl dole time nereportuje?
20.6.2020 02:40 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Program time a cas user > real?

Pravděpodobně kvůli tomuhle: (je to citát z times(2)):

Times for terminated children (and their descendants) are added in at the moment wait(2) or waitpid(2) returns their process ID. In particular, times of grandchildren that the children did not wait for are never seen.

Podle strace to vypadá, že rodičovský openssl proces wait() ani waitpid() na potomky nezavolá.

Jendа avatar 19.6.2020 16:39 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Program time a cas user > real?
Jinak openssl umí tohle samo
openssl speed -multi 4 aes-128-cbc
ale samozřejmě si za openssl může dosadit něco co považuje za „základní“
19.6.2020 17:56 z_sk | skóre: 34 | blog: analyzy
Rozbalit Rozbalit vše Re: Program time a cas user > real?
Ani nie:
$ time  openssl speed -multi 4 aes-128-cbc
Forked child 0
Forked child 1
Forked child 2
Forked child 3
+DT:aes-128 cbc:3:16
+DT:aes-128 cbc:3:16
+DT:aes-128 cbc:3:16
+DT:aes-128 cbc:3:16
+R:4880758:aes-128 cbc:3.000000
+DT:aes-128 cbc:3:64
+R:4901158:aes-128 cbc:3.000000
+DT:aes-128 cbc:3:64
+R:4908932:aes-128 cbc:3.010000
+DT:aes-128 cbc:3:64
+R:5261213:aes-128 cbc:3.020000
+DT:aes-128 cbc:3:64
^C

real	0m3,953s
user	0m0,010s
sys	0m0,001s
debian.plus@protonmail.com

Založit nové vláknoNahoru

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