Тестирование загрузки процессора одной командой или функцией

Если ваша оболочка поддерживает подстановку процессов, вы можете попробовать следующее:

Первые 150 файлов будут скопированы в destdir_B, а СЛЕДУЮЩИЕ 300 — в destdir_C. Все, что осталось, останется нетронутым.

{
   head -n 150 | xargs -t cp -t "$destdir_B"
   head -n 300 | xargs -t cp -t "$destdir_C"
} <(find . -maxdepth 1 -type f)

Это связано с обычными оговорками о невозможности обработки экзотических имен файлов.

А когда у вас нет <(...) вы можете сохранить вывод find в файл, а затем перенаправить этот файл в {...}

HTH

1
01.04.2017, 14:33
2 ответа

time дает вам информацию! Это говорит вам, сколько времени программа провела в качестве пользователя (т.е. использование ЦП) по сравнению с системой (т.е. ввод/вывод). Программа с интенсивным процессором - это программа, для которой время пользователя преобладает, а системное время пренебрежимо мало.

0
28.01.2020, 00:58

Кажется, есть bash встроенный/ключевое слово время и отдельное приложение, /usr/bin/ время . Похоже, что первое имеет приоритет, поэтому для второго требуется полный путь.

(По-видимому, это уже много обсуждалось в прошлом, но я сталкиваюсь с этим впервые).

Базовые функции остались прежними, но последние могут предоставлять дополнительную информацию об использовании ЦП и многое другое (особенно с флагом -v/--verbose).

В то время как первый будет принимать функцию в качестве операнда, второй — нет; если только он не проанализирован в контексте скрипта. Итак, это немного раздражает и доставляет небольшие неудобства, но единственным решением, по-видимому, является создание нового сценария; объявление новой функции, вызов ее, сохранение, а затем:

/usr/bin/time -v ./newfunction.sh

Спасибо всем, кто нашел время написать.

0
28.01.2020, 00:58

Теги

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