Puncte:0

Evaluați performanța scriptului în raport cu consumul CPU/RAM pentru diferiți parametri

drapel ke

Am un script shell de procesare a imaginii care poate fi furnizat cu diferite seturi de parametri care produc o ieșire validă pentru mine. Încerc să identific setul de parametri care are cea mai mică utilizare a resurselor (CPU/RAM), deoarece acest script va rula pe cloud.Există instrumente pe care le pot folosi pentru evaluarea comparativă? Caut ceva care să-mi dea ciclurile CPU totale utilizate de script sau orice alte date/metrice relevante pe care le-aș putea compara.

OS: Ubuntu 20.04, Shell: BASH

Exemplu de ceea ce caut:

magical-benchmark-tool -c pdftoppm -png test.pdf test

Ieșire

timp (secunde) cicluri procesor memorie maximă utilizată (MB) memorie medie utilizată (MB)
-------------- ---------------- -------------------- --------------------
19 1253 250 128

Mulțumesc!

John Mahowald avatar
drapel cn
Vă rugăm să vă editați întrebarea pentru a adăuga sistemul de operare, versiunea și ce bibliotecă de procesare a imaginilor, dacă doriți o discuție specifică despre instrumente.
Puncte:0
drapel us

Nu ai specificat ce shell folosești, așa că o să presupun că Bash.


Pentru utilizarea procesorului puteți utiliza strace.

strace -c script.sh

Pentru un scenariu simplu Hello World

#!/bin/bash
ecou „Bună ziua, lume”

Ieșire

Salut Lume
% timp secunde usecs/call apeluri erori syscall
------ ----------- ----------- --------- --------- ---- ------------
 17,70 0,000253 14 18 mmap
 11,69 0,000167 20 8 openat
  9,59 0,000137 9 14 rt_sigaction
  7,35 0,000105 13 8 fstat
  6,30 0,000090 15 6 mprotect
  5,60 0,000080 10 8 aproape
  5,32 0,000076 12 6 citit
  5,11 0,000073 14 5 stat
  4,90 0,000070 70 1 execve
  3,50 0,000050 10 5 rt_sigprocmask
  2,59 0,000037 37 1 scrie
  2,24 0,000032 10 3 lseek
  2,24 0,000032 10 3 br
  2,10 0,000030 10 3 2 ioctl
  1,89 0,000027 9 3 1 fcntl
  1,40 0,000020 20 1 munmap
  1,40 0,000020 20 1 1 acces
  1,33 0,000019 9 2 getpid
  1,26 0,000018 9 2 prlimit64
  0,77 0,000011 11 1 dup2
  0,70 0,000010 10 1 sysinfo
  0,70 0,000010 10 1 getppid
  0,70 0,000010 10 1 arh_prctl
  0,63 0,000009 9 1 uname
  0,63 0,000009 9 1 getuid
  0,63 0,000009 9 1 getgid
  0,63 0,000009 9 1 getpgrp
  0,56 0,000008 8 1 geteuid
  0,56 0,000008 8 1 getegid
------ ----------- ----------- --------- --------- ---- ------------
100,00 0,001429 108 4 total

Pentru memorie puteți folosi top.
În timp ce rulați apăsați de sus o și tastați de ex. COMANDĂ=bash pentru a afișa intrările din COMANDA coloană care sunt egale cu bash.

user728899 avatar
drapel ke
Mulțumiri! strace îmi dă ceea ce vreau în ceea ce privește CPU. Acum trebuie să obțin câteva numere referitoare la memorie (memoria maximă utilizată, memoria medie utilizată în timpul procesării) din linia de comandă.
p10l avatar
drapel us
După cum am spus în răspunsul meu, puteți folosi `top`. Nu este perfect, dar nu cunosc alte soluții gratuite. De asemenea, dacă găsiți util răspunsul meu, luați în considerare [acceptarea și/sau votul pozitiv] (https://serverfault.com/help/someone-answers).

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.