أدت إزالة المكون الإضافي chruby وإضافة chruby إلى .zshrc
يدويًا إلى إزالة 500 مللي ثانية من وقت بدء تشغيل الجهاز.
يمكنني إعادة الإنتاج على جهاز OS X 10.9.5 الخاص بي.
+ 1455372625.828910 /Users/janke/.oh-my-zsh/oh-my-zsh.sh:81> plugin=chruby
+ 1455372625.828954 /Users/janke/.oh-my-zsh/oh-my-zsh.sh:82> [ -f /Users/janke/.oh-my-zsh-custom/plugins/chruby/chruby.plugin.zsh ']'
+ 1455372625.829008 /Users/janke/.oh-my-zsh/oh-my-zsh.sh:84> [ -f /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh ']'
+ 1455372625.829074 /Users/janke/.oh-my-zsh/oh-my-zsh.sh:85> source /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh
+ 1455372625.829375 /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh:17> alias 'rubies=chruby'
+ 1455372625.829660 /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh:36> _ruby-build_installed
+ 1455372625.829715 _ruby-build_installed:1> whence ruby-build
+ 1455372625.830336 /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh:66> _homebrew-installed
+ 1455372625.830387 _homebrew-installed:1> whence brew
+ 1455372625.830445 /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh:66> _chruby-from-homebrew-installed
+ 1455372625.831099 _chruby-from-homebrew-installed:1> brew --prefix chruby
+ 1455372626.053828 _chruby-from-homebrew-installed:1> [ -r /usr/local/opt/chruby ']'
+ 1455372626.054501 /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh:67> brew --prefix chruby
+ 1455372626.269022 /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh:67> source /usr/local/opt/chruby/share/chruby/chruby.sh
...
+ 1455372626.271227 /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh:68> brew --prefix chruby
+ 1455372626.494185 /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh:68> source /usr/local/opt/chruby/share/chruby/auto.sh
يتم إنفاق معظم وقته على مكالمات brew --prefix chruby
، والتي تقوم بما يصل إلى ثلاثة منها. الأمر brew
هو برنامج روبي ، وليس سريعًا. لا شيء للاتصال مرارا وتكرارا أثناء بدء التشغيل. على الأقل ، يجب أن يستدعي المكون الإضافي chruby
brew --prefix chruby
مرة واحدة ويخزن النتيجة في متغير لتجنب المكالمات المتكررة. والأفضل من ذلك ، قم بالتبديل إلى استخدام عادي brew --prefix
وقم ببناء المسار إلى chruby في zsh باستخدام $(brew --prefix)/opt/chruby
. تم تحسين المكالمة العادية brew --prefix
، وتستغرق حوالي 15 مللي ثانية فقط على نظام سريع.
للرجوع إليها في المستقبل ، يمكنك إجراء التنميط مثل هذا بنفسك لتشخيص مشاكل الأداء:
الصق هذا في بداية ~/.zshrc
.
# Debugging prompt with timestamp for profiling
PS4=$'+ %D{%s.%6.} %N:%i> '
ثم قم بتشغيل zsh -lx 2>zsh-startup.log
ونفذ exit
كأول أمر في الصدفة الناتجة التي تفتح. سوف ينتهي بك الأمر مع تتبع طابع زمني لتسلسل بدء التشغيل الخاص بك. سيساعدك ذلك في إخبارك بالأجزاء التي تستغرق وقتًا طويلاً. يمكنك لصقها في جدول بيانات وفرق الطوابع الزمنية في الأسطر اللاحقة للحصول على أوقات التنفيذ لتسهيل الأمر. أو امسح أي كلمات مرور أو رموز مميزة منه وانشرها كجوهر إذا كنت بحاجة إلى مساعدة في تحليلها.
أنا سعيد بهذا الإصلاح الختامي ، شكرًا @ T0mK0!
التعليق الأكثر فائدة
أنا سعيد بهذا الإصلاح الختامي ، شكرًا @ T0mK0!