Bagi siapa saja yang datang ke kesimpulan bahwa kali startup untuk kerang baru pada MacOS terlalu lambat bagi mereka, ini adalah yang solusi .
Saya baru saja menemukan bahwa sebenarnya ada dua paket yang dapat diinstal melalui brew
. Saya telah menginstal bash-completion
paket selama bertahun-tahun, dan tidak pernah repot-repot mempertanyakannya, meskipun pada waktu itu saya telah beralih dari Bash 3 ke 4, menjadi sekarang 5. Namun, dari waktu ke waktu, saya akan meninjau kembali masalahnya , sering menemukan diskusi StackOverflow yang sangat ini.
Ada paket lain, bash-completion@2
!
Apa bedanya? bash-completion
adalah untuk Bash versi 3.2. bash-completion@2
untuk Bash versi 4.1+, dan 5.
Dalam menghapus bash-completion
paket lama , dan menginstal bash-completion@2
, waktu startup shell saya telah turun dari 605ms ke 244ms. Itu peningkatan kecepatan besar.
Saya menduga banyak dari kita membuat kesalahan yang sama, karena brew info
statistik menunjukkan bahwa yang pertama memiliki banyak pemasangan, sedangkan yang kedua memiliki sangat sedikit:
Perlu dicatat bahwa jawaban yang dipilih saat ini menyebutkan komentar beberapa baris, yang hanya memberikan sedikit peningkatan pada waktu startup (jika menggunakan bash-completion
paket lama , yang mungkin banyak), tetapi tidak memiliki dampak apa pun pada bash-completion@2
paket baru : paket baru ini cepat apa pun yang terjadi. Itu berarti tidak diperlukan peretasan.
TL; DR:
brew uninstall bash-completion && brew install bash-completion@2
Ingatlah untuk memperbarui jalur sumber ke file penyelesaian di .bashrc
atau .bash_profile
file Anda.
Sumber:
Sebagai topik yang agak terkait, saya banyak menggunakan rclone
utilitas, jadi sudah diinstal. Itu juga kebetulan memiliki file penyelesaian terbesar yang pernah saya lihat . Menghapusnya mengurangi waktu startup shell saya ke ~ 120ms, yang sangat cepat.
Edit:
Bagi siapa saja yang menginginkan detail teknis yang menjelaskan masalah ini, saya telah menulisnya secara panjang lebar di forum Homebrew . Untuk meringkas, alasan yang bash-completion@2
jauh lebih cepat adalah karena itu ditulis sehingga tidak lagi bersemangat memuat semua file penyelesaian; alih-alih ia memuat file penyelesaian sesuai permintaan, atau seperti yang dijelaskan penulis, ia memuatnya dengan cara yang tidak bersemangat .