Подсчитайте слова: что будет использовать меньше CPU, wc или perl-скрипт?

Моя цель – подсчитать слова в файле при использовании минимально возможного CPU.

Я мог бы использовать команду wc или написать простой скрипт perl для этого, какой из двух вариантов будет менее интенсивным?

3 Solutions collect form web for “Подсчитайте слова: что будет использовать меньше CPU, wc или perl-скрипт?”

Я подозреваю, что wc будет использовать меньше процессорного времени, он написан на C и был тщательно оптимизирован с течением времени. Однако нет причин не проверять это самостоятельно. time позволит сравнить производительность вашего Perl-скрипта с wc . Используя команду time , вы должны получить вывод, например:

 > time wc /usr/share/dict/words 119095 119095 1145922 /usr/share/dict/words wc /usr/share/dict/words 0.03s user 0.00s system 98% cpu 0.030 total 

В этом случае wc использует 0.030 секунд времени процессора.

Как правило, при попытке решить проблему, которая может быть полностью инкапсулирована одним инструментом командной строки, например wc , они более эффективны, чем что-либо еще.

Только тогда, когда вам нужно начать цепочку нескольких «команд» вместе, имеет смысл перевести решение, связав их вместе, на решение проблемы на языке более высокого уровня, таком как Perl, Python или Ruby.

Расходы при объединении команд вместе обычно возникают в форме необходимости повторного продолжения выполнения простых инструментов много раз.

Я согласен с @wingedsubmariner, wc почти наверняка будет быстрее, чем любая версия perl, которую вы готовите:

 $ /usr/bin/time -f "%Uuser %Ssystem %Eelapsed %PCPU" wc /usr/share/dict/words 99171 99171 938848 /usr/share/dict/words 0.02user 0.00system 0:00.02elapsed 86%CPU $ /usr/bin/time -f "%Uuser %Ssystem %Eelapsed %PCPU" \ perl -ane '$k+=$#F+1; END{print "$k\n"}' /usr/share/dict/words 99171 0.09user 0.00system 0:00.09elapsed 96%CPU 
  • Как создать переменную из данных по каналам
  • Подсчет файлов, каталогов и т. Д. В заданном каталоге и форматирование на экране
  • Как сделать wc интерпретировать стандарт как список файлов
  • Возвращает количество совпадений с помощью find / replace с помощью sed
  • Количество символов имен папок печати
  • Добавить число строк и дату в имя файла
  • Выберите файл на основе количества строк и обработайте результат
  • Как эффективно разделить большой текстовый файл без разделения многострочных записей?
  • Получить правильное количество строк в разностном выходе
  • Как найти файлы с тем же именем, но разные строки в двух каталогах?
  • wc - установка конечного символа
  • Как использовать wc и piping для определения количества файлов и каталогов в определенном каталоге?
  • Linux и Unix - лучшая ОС в мире.