Рейтинг:0

Сравните производительность скрипта с потреблением ЦП/ОЗУ для различных параметров.

флаг ke

У меня есть сценарий оболочки для обработки изображений, который может быть снабжен различными наборами параметров, которые все производят для меня действительный вывод. Я пытаюсь определить набор параметров с наименьшим использованием ресурсов (ЦП/ОЗУ), поскольку этот скрипт будет выполняться в облаке.Существуют ли какие-либо инструменты, которые я могу использовать для эталонного тестирования? Я ищу что-то, что даст мне общее количество циклов ЦП, используемых сценарием, или любые другие соответствующие данные/показатели, которые я мог бы сравнить.

ОС: Ubuntu 20.04, оболочка: BASH

Пример того, что я ищу:

magic-benchmark-tool -c pdftoppm -png test.pdf тест

Вывод

время (секунды) циклы процессора макс. используемая память (МБ) среднее используемая память (МБ)
----------------------------- ---------------- -------------------- --------------------
19 1253 250 128

Спасибо!

John Mahowald avatar
флаг cn
Пожалуйста, отредактируйте свой вопрос, указав операционную систему, версию и библиотеку обработки изображений, если вы хотите обсудить конкретные инструменты.
Рейтинг:0
флаг us

Вы не указали, какую оболочку вы используете, поэтому я предполагаю, что это Bash.


Для загрузки ЦП вы можете использовать стрейс.

strace -c script.sh

Для простого сценария Hello World

#!/бин/баш
эхо "Привет, мир"

Вывод

Привет, мир
% времени, секунд, использование/вызов, вызовы, ошибки, системный вызов
------ ----------- ----------- --------- --------- ---- ------------
 17,70 0,000253 14 18 ммап
 11,69 0,000167 20 8 откр.
  9,59 0,000137 9 14 rt_sigaction
  7,35 0,000105 13 8 fstat
  6,30 0,000090 15 6 мзащита
  5,60 0,000080 10 8 закрыть
  5,32 0,000076 12 6 чтение
  5.11 0.000073 14 5 стат
  4,90 0,000070 70 1 исполнитель
  3,50 0,000050 10 5 rt_sigprocmask
  2,59 0,000037 37 1 запись
  2,24 0,000032 10 3 лиск
  2,24 0,000032 10 3 брк
  2.10 0.000030 10 3 2 ioctl
  1,89 0,000027 9 3 1 фкнтл
  1.40 0.000020 20 1 мункарта
  1,40 0,000020 20 1 1 доступ
  1,33 0,000019 9 2 гетпид
  1,26 0,000018 9 2 prlimit64
  0,77 0,000011 11 1 дуп2
  0,70 0,000010 10 1 системная информация
  0,70 0,000010 10 1 гетппид
  0,70 0,000010 10 1 arch_prctl
  0,63 0,000009 9 1 одноимённый
  0,63 0,000009 9 1 гетуид
  0,63 0,000009 9 1 получить
  0,63 0,000009 9 1 getpgrp
  0,56 0,000008 8 1 гетеуид
  0,56 0,000008 8 1 гетегид
------ ----------- ----------- --------- --------- ---- ------------
100,00 0,001429 108 4 всего

Для памяти можно использовать вершина.
Во время бега верхний пресс о и введите, например. КОМАНДА=баш чтобы показать записи из КОМАНДА столбец, равный бить.

user728899 avatar
флаг ke
Спасибо! strace дает мне то, что я хочу в отношении процессора. Теперь мне нужно получить некоторые цифры, касающиеся памяти (максимально используемая память, средняя память, используемая во время обработки) из командной строки.
p10l avatar
флаг us
Как я уже сказал в своем ответе, вы можете использовать «top». Это не идеально, но я не знаю других бесплатных решений. Кроме того, если вы найдете мой ответ полезным, подумайте о том, чтобы [принять и/или проголосовать за него](https://serverfault.com/help/someone-answers).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.