Для тих , хто приходить до висновку , що час запуску для нових снарядів на MacOS є занадто повільним для них, цього рішення .
Я щойно виявив, що насправді є два пакети, які можна встановити через brew
. Я встановлював bash-completion
пакет протягом багатьох років, і ніколи не намагався його ставити під сумнів, хоча за той час я перейшов від Bash 3, до 4, до цього часу 5. Хоча час від часу я переглядав проблему , часто натрапляючи на цю саму дискусію StackOverflow.
Є ще один пакет bash-completion@2
!
Яка різниця? bash-completion
призначений для версії 3.2. bash-completion@2
призначений для версії Bash 4.1+ та 5.
Видаляючи старий bash-completion
пакет та встановлюючи bash-completion@2
, час мого запуску оболонки зменшився з 605 мс до 244 мс. Це величезне покращення швидкості.
Я підозрюю, що багато хто з нас роблять цю саму помилку, оскільки brew info
статистика показує, що перший має тонни встановлень, а останній так мало:
Слід зазначити, що поточна обрана відповідь згадує, коментуючи деякі рядки, що забезпечує лише незначне покращення часу запуску (якщо використовується старий bash-completion
пакет, який, мабуть, є багатьма), але не впливає на новий bash-completion@2
пакет: цей новий пакет швидко, незважаючи ні на що. Це означає, що жодних хак не потрібно.
TL; DR:
brew uninstall bash-completion && brew install bash-completion@2
Не забудьте оновити вихідний шлях до файлу завершення у вашому .bashrc
або .bash_profile
файлі.
Джерела:
Оскільки тема дещо пов’язана, я багато використовую rclone
утиліту, тому вона встановлена. Також трапляється найбільший файл завершення, який я коли-небудь бачив . Його видалення скорочує час запуску оболонки до ~ 120 мс, що дуже швидко.
Редагувати:
Для всіх, хто хоче технічні деталі, які пояснюють цю проблему, я про це детально писав на форумах Homebrew . Підводячи підсумок, причина, що bash-completion@2
відбувається набагато швидше, полягає в тому, що вона була написана так, що вона більше не охоче завантажує всі файли завершення; натомість він завантажує файл на завершення на вимогу, або, як автор описує його, він завантажує їх нетерплячим чином.