HeaderImg
AvatarPic

Zsh 🚀 تحسين اداء الشل

تحسين أداء الشل مو رفاهية، خصوصًا إذا كنت مطور وتعتمد عليه يوميًا.

Published on July 25, 2025 by d7man

#:

#Zsh#Zsh-startup#Coding

تحسين أداء أداة الشل Zsh 🚀

مؤخرًا واجهت مشكلة مزعجة جدًا: الـZsh صار بطيء بشكل غير طبيعي!
كل ما أفتح التيرمنال، أحس كأني جالس أنتظر قطار! 🚅
وبما إن أغلب شغلي يعتمد على التيرمنال، ضروري يكون الشل سريع في التحميل عشان أقدر أكتب أوامري فورًا.


ما أسباب بطء الشل؟

في أكثر من سبب ممكن يخلي الشل يتأخر في التشغيل، ومنها:

  • استخدام أدوات مثل nvm (لإدارة إصدارات Node.js)
  • وجود إضافات تشتغل تلقائيًا مع كل جلسة
  • تحميل أوامر أو متغيرات غير ضرورية في بداية كل تشغيل

في هذا المقال، راح نركز على أحد الأسباب الشائعة: nvm.


كيف نعرف سبب البطء؟

أول خطوة هي تحليل وقت تحميل الشل باستخدام أداة مدمجة اسمها zprof.

افتح ملف الإعدادات الخاص بـZsh:

~/.zshrc

ونضيف اول سطر في الملف كالتالي

Image

zmodload zsh/zprof

بعدها ننتقل لاخر سطر في الملف ونضيف كلمة zprof ونحفظ الملف Image

zprof

بعدها ننتقل الى التيرمنال ونحط الامر التالي عشان نعرف ايش هيا الاضافات اللي تخلي الشل ياخذ هذا الوقت كله

Image

time zsh --interactive -c exit

طيب، وش الحل؟ 🔧

بما إن nvm يسبب تأخير واضح، قررت أستبدله بأداة أسرع اسمها fnm — مكتوبة بلغة Rust وتؤدي نفس الوظيفة.

تثبيت fnm

عن طريق brew

brew install fnm

او عن طريق Github:

https://github.com/Schniz/fnm

اللحين نجي بعد ماحملنا الاداة ونحذف اللي اضفناه لملف الشل ونحط الكومناد عشان نشوف كم راح ياخذ وقت عشان يشتغل الشل معانا وهل فرق فعلا او لا ؟ سويت الامر اللي في البداية عشان نشوف سرعة تشغل الشل

time zsh --interactive -c exit

النتيجة

Image

طبعا الفرق واضح قبل وبعد صار اسرع تقريبا ب 120% بكذا صاراسرع لانه خاصة لي وللي يستخدم التيرمنال بشكل دوري يهمه انه اول مايفتح التيرمنال يكتب الاوامر او يستخدم الشل بسرعة

هل في مجال لتحسين السرعة أكثر؟ 🧠

أكيد!

كيف؟

  • راجع الإضافات الموجودة وتأكد إنها ضرورية فعلًا.

  • استخدم مدير إضافات ذكي مثل zinit يدعم تحميل الإضافات عند الطلب (Lazy Loading).

  • تجنّب تحميل ملفات البيئة (env) عند التشغيل، وخلها تتحمّل فقط عند الحاجة.

    🎯 خلاصة:
    تحسين أداء الشل مو رفاهية، خصوصًا إذا كنت مطور وتعتمد عليه يوميًا.
    بخطوات بسيطة، تقدر تسرّع تجربتك وتحافظ على إنتاجيتك.

Home Posts