Почему здесь-строки в bash медленнее, чем передача ввода в команду?
666
static
Я сравнил время выполнения Unix-строк и ввода данных канала bc
:
труба
time for i in do echo "sqrt(5.09)" | bc -q > /dev/null done real 0m3.584s user 0m0.899s sys 0m2.404s
против
здесь-строка
time for i in do bc -q <<< "sqrt(5.09)" > /dev/null done real 0m5.137s user 0m0.686s sys 0m2.262s
(эти значения являются средними: проверено много раз)
Таким образом, время real
выполнения с использованием here-строк больше, чем с использованием каналов, но сумма user
+ sys
раз в случае здесь-строк все же меньше, чем я изначально ожидал (echo ... | выполняется в новом процессе, так что есть накладные расходы на исполнение). Почему такое странное поведение Баш?
0 ответов на вопрос
Похожие вопросы
-
2
.profile в Mac OS X?
-
1
Приостановить все, кроме x задач, интенсивно использующих процессор
-
10
Как я могу найти в истории bash и повторно запустить команду?
-
-
2
Можно ли передать выходные данные одной команды двум другим командам?
-
8
Переименуйте группу файлов одной командой
-
2
Почему мой путь не обновляется * сейчас *?
-
5
Как удалить символическую ссылку на каталог?
-
8
Спаси меня от бессмысленного терминала
-
9
Как можно добавить номер строки и табуляцию к каждой строке текстового файла?
-
1
Когда я должен положить конфигурации в .bashrc против. .bash_profile?