Описание тега age-limits
Если вы называете
я=`входные кот`
это позволяет процесс оболочки вырастет на 50 МБ до 200 Мб (в зависимости от внутренних широкое внедрение персонажа). Это может сделать ваш снаряд медленный, но это не главная проблема.
Главная проблема заключается в том, что команде нужно прочитать весь файл в памяти оболочки и эхо $я
должен сделать поле разделения на файл в $я
. Для того, чтобы сделать разбиение поля, весь текст из файл должен быть преобразован в широких символов, и это, где большую часть времени тратится.
Я сделал несколько тестов с медленной дела и получили следующие результаты:
- Быстрый-ksh93
- Следующий мой оболочки Bourne (2x медленнее, что ksh93)
- Далее идет Баш (3 раза медленнее, чем ksh93)
- Последнее ksh88 (7х медленнее, чем ksh93)
Почему ksh93 является самым быстрым, кажется, что ksh93 не использовать mbtowc()
из libc, но скорее собственной реализации.
Кстати: Стефан ошибается, что размер имеет какое-то влияние, я составил Борна читать в 4096 байт вместо 128 байт и получил ту же производительность в обоих случаях.