الحلقة 7: من تأليف "بروس داوسون" في سياتل، واشنطن (تشرين الأول/أكتوبر 2019)
الحلقات السابقة
قد يكون من المفيد أحيانًا تجميع ملف مصدر واحد في Chromium يدويًا، وربما تجربة خيارات تحسين برنامج التحويل البرمجي، ومعالجتها مسبقًا إلى ملف واحد لفهم بعض التفاصيل الدقيقة للماكرو أو لتقليل خطأ في برنامج التجميع.
ستتيح بعض الحيل لمطوّر برامج Chromium العثور على الأمر الذي تجمع ملف مصدر معين مع إجراء التعديلات حسب الحاجة.
ابدأ بالانتقال إلى دليل الإخراج واستخدام autoninja (أو ninja)
تجميع الملف الذي يهمّك (وأي ملحقات) باستخدام اللاحقة ^
.
تطلب هذه اللاحقة من النينجا إنشاء ناتج file—version.o
المحدد
وهو في هذه الحالة. ثم المس الملف وجمِّعه (وفقط) مرة أخرى باستخدام
العلامة -v
(مطوّلة) إلى النينجا:
على نظام التشغيل Linux أو OSX:
autoninja ../../base/version.cc^
touch ../../base/version.cc
autoninja -v ../../base/version.cc^
في Windows cmd Shell ^
عبارة عن رمز خاص ويجب تخطيه:
C:\> autoninja ../../base/version.cc^^
C:\> touch ../../base/version.cc
C:\> autoninja -v ../../base/version.cc^^
يبدو الناتج النموذجي للأمر autoninja -v
على النحو التالي (إلى حد كبير،
مقطوعة):
..\..\third_party\llvm-build\Release+Asserts\bin\clang-cl.exe /nologo /showIncludes -imsvc ...
يتيح لك هذا الأمر تجميع الملف المطلوب. للحصول على عمليات المعالجة المسبقة المخرجات، يمكنك اتباع الخطوات التالية:
في نظام التشغيل Linux أو OSX، أزِل الحظر -o obj/base/base/version.o
من النهاية.
وإضافة -E
هذا يخبر برنامج التحويل البرمجي بطباعة الملف الذي تمت معالجته مسبقًا
.stdout
أعد توجيه الإخراج إلى ملف، مثل هذا:
../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD ... -E >version.i
على نظام التشغيل Windows، أزِل الخيار /showIncludes
من البداية (تتم الطباعة.
سطر المخرجات لكل #include
) ثم أضف /P
من أجل
معالجة الملف مسبقًا بدلاً من تجميعها. وسيتم حفظ النتائج في
الدليل الحالي في version.i
:
..\..\third_party\llvm-build\Release+Asserts\bin\clang-cl.exe /nologo -imsvc ... /P
يمكنك الآن فحص الملف الذي تمت معالجته مسبقًا لمعرفة ما تفعله وحدات الماكرو، أو إجراء تغييرات تجريبية على مفتاح المحول البرمجي ثم إعادة التجميع لمشاهدة ما يحدث.
موارد إضافية
- إصدارات Chrome السريعة: للحصول على مزيد من النصائح بشأن تحسين عمليات الإنشاء (يركز على Windows).
- ETW: تعرّف على كيفية العثور على مشاكل أداء Windows في Chrome أو في الإصدار — من خلال قراءة مستندات ETW (المعروفة أيضًا باسم Xperf).