Join two textfiles on 1st column keeping order and unpairable lines from 1st file

Ksh93 делает многое, чтобы избежать развилок. Я понятия не имею, откуда он знает, как обрабатывать первый случай, поскольку truss показывает, что он вызывает только один вызов write(2) с конечным результатом.

Возможно, Дэвид сканирует команду в macro.c и знает, что он может обрабатывать "echo" внутренне.

Что я могу сказать, так это то, что я переписал парсер и интерпретатор "Bourne Shell" в прошлом году и в основном уменьшил количество форков и заменил многие форки вызовами vfork(). В настоящее время Bourne Shell является второй по скорости оболочкой после ksh93. Возможно, вы захотите запустить свои тесты с bosh.

BTW: ksh93 вообще избегает форков. Он реализует структуру, которая содержит все предыдущие глобальные переменные, что делает код оболочки реентерабельным, если он вызывается с разными экземплярами указателя структуры "глобальных" переменных.

Этот метод используется в ksh93 всякий раз, когда есть (cmd) под-оболочка.

Причина этого переписывания в том, что Дэвид использует Win-DOS на своем ноутбуке, и ему не понравился медленный Cygwin, поэтому он написал UWIN и использует ksh93 на Win-DOS напрямую. Поскольку в Win-DOS нет fork(), ему нужно было найти новое решение...

3
19.09.2016, 21:57
0 ответов

Теги

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