Đối với bất cứ ai đến kết luận rằng thời gian khởi động cho vỏ mới trên hệ điều hành MacOS là quá chậm đối với họ, đây là những giải pháp .
Tôi chỉ phát hiện ra rằng trên thực tế có hai gói có thể được cài đặt thông qua brew
. Tôi đã cài đặt bash-completion
gói trong nhiều năm và không bao giờ bận tâm đặt câu hỏi, mặc dù trong thời gian đó tôi đã đi từ Bash 3, đến 4, đến bây giờ 5. Tuy nhiên, thỉnh thoảng tôi vẫn xem xét lại vấn đề , thường vấp phải cuộc thảo luận rất StackOverflow này.
Có một gói khác , bash-completion@2
!
Có gì khác biệt? bash-completion
dành cho phiên bản Bash 3.2. bash-completion@2
dành cho Bash phiên bản 4.1+ và 5.
Khi gỡ bỏ bash-completion
gói cũ và cài đặt bash-completion@2
, thời gian khởi động shell của tôi đã giảm từ 605ms xuống còn 244ms. Đó là một cải tiến tốc độ rất lớn.
Tôi nghi ngờ nhiều người trong chúng ta đang mắc phải lỗi tương tự, vì các brew info
số liệu thống kê cho thấy cái trước có hàng tấn cài đặt, trong khi cái sau có quá ít:
Cần lưu ý rằng câu trả lời được chọn hiện tại đề cập đến việc bình luận một số dòng, chỉ cung cấp một sự cải thiện nhỏ cho thời gian khởi động (nếu sử dụng bash-completion
gói cũ , có thể là nhiều), nhưng không ảnh hưởng gì đến bash-completion@2
gói mới : gói mới này là nhanh không có vấn đề gì. Điều đó có nghĩa là không cần hack.
TL; DR:
brew uninstall bash-completion && brew install bash-completion@2
Nhớ cập nhật đường dẫn nguồn đến tệp hoàn thành trong tệp .bashrc
hoặc .bash_profile
tệp của bạn .
Nguồn:
Là một chủ đề hơi liên quan, tôi sử dụng rclone
tiện ích rất nhiều, vì vậy nó đã được cài đặt. Nó cũng có tập tin hoàn thành lớn nhất mà tôi từng thấy . Loại bỏ nó làm giảm thời gian khởi động shell của tôi xuống ~ 120ms, rất nhanh.
Biên tập:
Đối với bất kỳ ai muốn các chi tiết kỹ thuật giải thích vấn đề này, tôi đã viết về vấn đề này trên các diễn đàn Homebrew . Tóm lại, lý do bash-completion@2
nhanh hơn nhiều là vì nó được viết để nó không còn háo hức tải tất cả các tệp hoàn thành; thay vào đó, nó tải một tập tin hoàn thành theo yêu cầu, hoặc như tác giả mô tả, nó tải chúng theo cách không háo hức .