Встроенный инструмент для временных рядов процессов Linux для ЦП и памяти

Вы можете написать функцию, которая возвращает статус, указанный в качестве аргумента, или 255, если он не указан. (Я называю это ret, так как он "возвращает" свое значение.)

ret() { return "${1:-255}"; }

и используйте retвместо вызова exit. Это позволяет избежать неэффективности создания оболочки sub -в принятом в настоящее время ответе.

Некоторые измерения.

time bash -c 'for i in {1..10000} ; do (exit 3) ; done ; echo $?'

на моей машине занимает около 3,5 секунд.

 time bash -c 'ret(){ return $1 ; } ; for i in {1..10000} ; do ret 3 ; done ; echo $?'

на моей машине занимает около 0,051 секунды, в 70 раз быстрее. Установка обработки по умолчанию все равно делает ее в 60 раз быстрее. Очевидно, что цикл имеет некоторые накладные расходы. Если я изменю тело цикла на просто :или true, тогда время уменьшится вдвое до 0,025, полностью пустой цикл будет недопустимым синтаксисом. Добавление ;:к циклу показывает, что эта минимальная команда занимает 0,007 секунды, поэтому накладные расходы цикла составляют около 0,018. Вычитание этих накладных расходов из двух тестов показывает, что решение retболее чем в 100 раз быстрее.

Очевидно, что это синтетическое измерение, но вещи складываются. Если вы сделаете все в 100 раз медленнее, чем нужно, вы получите медленные системы. 0,0

1
06.05.2020, 11:55
1 ответ

Может ли sysstatчто-нибудь помочь вам? Если вы включите его, sarпозволит вам печатать хорошие отчеты об использовании процессора и памяти (и некоторые другие статистические данные ). Есть несколько инструментов, которые позволяют вам преобразовать это в графики, например, (ksar ).

0
28.04.2021, 23:16

Теги

Похожие вопросы