تسريع التجميع في Xcode على وجه السرعة

مع نمو المشروع ، تبطئ سرعة الترجمة الخاصة بالمشروع. يصبح هذا ملحوظًا بشكل خاص عند اختبار البرنامج ، مع إجراء تغييرات صغيرة على البرنامج بشكل متوازٍ.

أولاً ، دعنا نتعرف على المدة التي يستغرقها المشروع في تحسيناتنا. للقيام بذلك ، أدخل في المحطة

defaults write com.apple.dt.Xcode ShowBuildOperationDuration -bool YES 

للقيام بذلك ، انتقل إلى القسم Product hold مع الاستمرار وانقر فوق Clean Build Folder ، ثم أعد تجميع المشروع. مشروعي يجمع 81 ثانية . دعونا نرى ما ستكون النتيجة بعد التحسين.



بادئ ذي بدء ، يجب علينا معرفة أي الأماكن تبطئ تجميع. بشكل افتراضي ، لا يُظهر Xcode تحذيرًا حول مكان المشكلة ، ولكن يمكننا حلها.
أصعب الأماكن هي ميزات رائعة ونوع التحقق. لذلك ، نحتاج إلى إدخال هذين السطرين في القسم Build Settings -> Other Swift Flags -> Debug

 -Xfrontend -warn-long-function-bodies=100 -Xfrontend -warn-long-expression-type-checking=100 

(هنا لدينا وقت تجميع 100ms ، يمكننا وضع أي رقم)

رسم بياني


مثال على مسودة العمل الخاصة بي



لدي قسم يستغرق 13778 مللي ثانية ، على الأرجح لن يكون لديك هذا ، ولكن بسبب تفاصيل المشروع ، لدي مثل هذه الأقسام. منذ أن تم بناء شجرة ثنائية لـ OCR.
نظرًا للتداخل العميق في بعضها البعض وتعريف النوع فقط في البداية ، وقبل علامة المساواة ، يحتاج المترجم إلى الكثير من الوقت لفهم النوع الموجود أمامه. (الشجرة تأخذ 30 خطوط ، وهنا جزء منها)

إلى



بعد



حددنا نوع كل تداخل وذهب التحذير.

نقطة ضعف أخرى هي عدة دوائر قصيرة على التوالي.

إلى



بعد

النوع المحدد بوضوح



بعد إصلاح جميع التحذيرات ، سوف نتحقق من وقت بناء المشروع مرة أخرى.
الآن يجمع المشروع 26 ثانية أسرع مرتين ونصف.



لا يزال هناك عمل يتعين القيام به ، ولكن تم حل المشاكل الأكثر وضوحا.

Source: https://habr.com/ru/post/ar439290/


All Articles