Я специально для Mac выполнил следующую команду в магазине Mac:
time for x in {1..5000000}; do if ! (($x % 10000)); then echo $x; fi done
для выполнения очень элементарного теста. Это создает список от 1 до 5000000, проверяет, делится ли он на 10000, и печатает, если это так. И time
измеряет время выполнения процесса. Я прибыл примерно на 40 секунд для MacBook Air, 32 для профессионалов, всех процессоров Intel 8-го поколения. Конкретный шаблон, который я заметил, заключается в том, что он долго зависает перед распечаткой чего-либо, вероятно, потому, что он создает список от 1
до 5000000
и помещает его в память.
Тем не менее, мой друг, использующий Windows, сообщал о более быстром времени на процессоре 5-го поколения m с оболочкой bash Windows 10, порядка 15 секунд. Я подозреваю, что это потому, что Windows bash
трактует for x in {1..5000000}
как генератор. Таким образом, процесс никогда не превращался в память, поскольку все нужно было только хранить в кеше, достигая большей скорости. Может ли кто-нибудь подтвердить, что циклы for для интерпретатора bash одинаковы / различны в разных реализациях Windows и Linux / Mac?