Сейчас я использую ubuntu 20 и zsh + oh my zsh shell. Проблема в том, что zsh оболочка запускается ненормально долго. Для сравнения: он почти в 9 раз медленнее, чем raw bash по сравнению с использованием команды time
Time Check с использованием Raw bash
for i in $(seq 1 10); do /usr/bin/time bash -i -c exit; done
exit
0.02user 0.07system 0:00.19elapsed 45%CPU (0avgtext+0avgdata 1816maxresident)k
136inputs+0outputs (3major+1737minor)pagefaults 0swaps
exit
0.05user 0.04system 0:00.17elapsed 52%CPU (0avgtext+0avgdata 1820maxresident)k
0inputs+0outputs (0major+1737minor)pagefaults 0swaps
exit
0.02user 0.06system 0:00.18elapsed 42%CPU (0avgtext+0avgdata 1824maxresident)k
0inputs+0outputs (0major+1745minor)pagefaults 0swaps
exit
0.08user 0.03system 0:00.21elapsed 51%CPU (0avgtext+0avgdata 1828maxresident)k
0inputs+0outputs (0major+1743minor)pagefaults 0swaps
exit
0.00user 0.06system 0:00.14elapsed 40%CPU (0avgtext+0avgdata 1816maxresident)k
0inputs+0outputs (0major+1736minor)pagefaults 0swaps
exit
0.02user 0.05system 0:00.14elapsed 50%CPU (0avgtext+0avgdata 1820maxresident)k
0inputs+0outputs (0major+1738minor)pagefaults 0swaps
exit
0.00user 0.06system 0:00.13elapsed 46%CPU (0avgtext+0avgdata 1820maxresident)k
0inputs+0outputs (0major+1741minor)pagefaults 0swaps
exit
0.01user 0.05system 0:00.14elapsed 40%CPU (0avgtext+0avgdata 1816maxresident)k
0inputs+0outputs (0major+1738minor)pagefaults 0swaps
exit
0.00user 0.07system 0:00.14elapsed 48%CPU (0avgtext+0avgdata 1816maxresident)k
0inputs+0outputs (0major+1738minor)pagefaults 0swaps
exit
0.01user 0.06system 0:00.13elapsed 50%CPU (0avgtext+0avgdata 1816maxresident)k
0inputs+0outputs (0major+1737minor)pagefaults 0swaps
Time Check с использованием zsh + о, мой zsh
for i in $(seq 1 10); do /usr/bin/time zsh -i -c exit; done
0.67user 0.82system 0:02.54elapsed 58%CPU (0avgtext+0avgdata 4676maxresident)k
0inputs+0outputs (0major+8337minor)pagefaults 0swaps
0.66user 1.01system 0:02.88elapsed 57%CPU (0avgtext+0avgdata 4676maxresident)k
0inputs+0outputs (0major+8329minor)pagefaults 0swaps
0.51user 1.11system 0:03.17elapsed 50%CPU (0avgtext+0avgdata 4676maxresident)k
0inputs+0outputs (0major+8345minor)pagefaults 0swaps
0.74user 0.76system 0:02.78elapsed 53%CPU (0avgtext+0avgdata 4676maxresident)k
0inputs+0outputs (0major+8339minor)pagefaults 0swaps
0.59user 0.99system 0:02.74elapsed 57%CPU (0avgtext+0avgdata 4676maxresident)k
0inputs+0outputs (0major+8326minor)pagefaults 0swaps
0.80user 0.86system 0:02.88elapsed 57%CPU (0avgtext+0avgdata 4676maxresident)k
0inputs+0outputs (0major+8339minor)pagefaults 0swaps
0.63user 1.02system 0:02.78elapsed 59%CPU (0avgtext+0avgdata 4676maxresident)k
0inputs+0outputs (0major+8330minor)pagefaults 0swaps
0.87user 0.89system 0:03.08elapsed 57%CPU (0avgtext+0avgdata 4676maxresident)k
0inputs+0outputs (0major+8325minor)pagefaults 0swaps
0.68user 0.98system 0:02.89elapsed 57%CPU (0avgtext+0avgdata 4676maxresident)k
0inputs+0outputs (0major+8323minor)pagefaults 0swaps
0.71user 0.88system 0:02.81elapsed 56%CPU (0avgtext+0avgdata 4676maxresident)k
0inputs+0outputs (0major+8338minor)pagefaults 0swaps
Я хотел бы снова очистить его, что задержка в zsh происходит только при открытии терминала при запуске, а не во время обычного использования. Я отключил все плагины и использую тему powerlevel10k, хотя могу определенно сказать, что это не имеет ничего общего с темой. Я заметил это замедление сразу после того, как я перешел на оболочку zsh, которая даже ухудшилась после того, как я установил свою zsh. Я также сказал некоторым из моих друзей провести этот тест, и их тайминги zsh были очень немного выше, чем сырые bash, это приемлемо, но мой кажется совершенно ненормальным.
Общие рекомендации также приветствуются, но, в частности, я хотел бы спросить, могу ли я проверить, что именно делает терминал в фоновом режиме, пока он принимает около 3 секунд для запуска в zsh вместо 0,2 секунды в bash
Вот мой .zshr c файл, если это помогает
Изменить - Я пробовал провести тот же тест с Raw zsh (без oh my zsh) Результаты интересны, теперь оболочка zsh запускается примерно в 4 раза медленнее, в среднем около 1,2 секунды, в отличие от до 3 секунд с помощью zsh + oh my zsh