مجموعه‌ای از وصله‌ها برای سرعت بخشیدن به کامپایل هسته منتشر شده است. Linux ۵۰ تا ۸۰ درصد

اینگو مولنار، یک توسعه‌دهنده مشهور Linux هسته و نویسنده‌ی زمان‌بند وظایف CFS (Completely Fair Scheduler)، آن را برای بحث در فهرست پستی توسعه‌دهندگان هسته پیشنهاد دادند. Linux серию патчей, затрагивающих более половины всех файлов в исходных текстах ядра и обеспечивающих увеличение скорости полной пересборки ядра на 50-80% в зависимости от настроек. Реализованная оптимизация примечательна тем, что она сопряжена с добавлением самого крупного в истории разработки ядра набора изменений — для включения разом предложено 2297 патчей, меняющих более 25 тысяч файлов (10 тысяч заголовочных файлов в каталогах «include/» и «arch/*/include/» и 15 тысяч файлов с исходными текстами).

افزایش عملکرد با تغییر روش پردازش فایل های هدر به دست می آید. ذکر شده است که بیش از سی سال توسعه هسته، وضعیت فایل‌های هدر به دلیل وجود تعداد زیادی وابستگی متقابل بین فایل‌ها، ظاهری ناامیدکننده به خود گرفته است. بازسازی فایل هدر بیش از یک سال به طول انجامید و نیاز به بازکاری قابل توجهی در سلسله مراتب و وابستگی ها داشت. در طول بازسازی، کار برای جداسازی تعاریف نوع و API برای زیرسیستم‌های مختلف هسته انجام شد.

از جمله تغییرات ایجاد شده: جداسازی فایل‌های هدر سطح بالا از یکدیگر، حذف توابع درون خطی که فایل‌های هدر را به هم پیوند می‌دهند، جداسازی فایل‌های هدر برای انواع و APIها، اطمینان از مونتاژ جداگانه فایل‌های هدر (حدود 80 فایل وابستگی‌های غیرمستقیم داشتند که با اسمبلی تداخل داشتند، از طریق آشکار شد. سایر فایل‌های هدر)، افزودن خودکار وابستگی‌ها به فایل‌های «.h» و «.c»، بهینه‌سازی گام به گام فایل‌های هدر، استفاده از حالت «CONFIG_KALLSYMS_FAST=y»، ادغام انتخابی فایل‌های C در بلوک‌های اسمبلی برای کاهش تعداد فایل های شی

در نتیجه، کار انجام شده امکان کاهش اندازه فایل های هدر پردازش شده در مرحله پس از پیش پردازش را به میزان 1-2 مرتبه فراهم کرد. به عنوان مثال، قبل از بهینه سازی، استفاده از فایل هدر “linux/gfp.h” منجر به اضافه شدن 13543 خط کد و گنجاندن 303 فایل هدر وابسته شد و پس از بهینه سازی حجم به 181 خط و 26 فایل وابسته کاهش یافت. یا مثال دیگر: هنگام پیش پردازش فایل "kernel/pid.c" بدون پچ، 94 هزار خط کد گنجانده شده است که بیشتر آنها در pid.c استفاده نمی شوند. جداسازی فایل های هدر باعث شد تا میزان کد پردازش شده به میزان سه برابر کاهش یابد و تعداد خطوط پردازش شده به 36 هزار کاهش یابد.

هنگامی که هسته به طور کامل با دستور make -j96 vmlinux در یک سیستم آزمایشی بازسازی شد، استفاده از وصله ها کاهش زمان ساخت شاخه v5.16-rc7 را از 231.34 به 129.97 ثانیه (از 15.5 به 27.7 ساخت) نشان داد. در ساعت)، و همچنین کارایی استفاده از هسته های CPU را در طول مونتاژها افزایش داد. با ساخت افزایشی، تأثیر بهینه سازی حتی بیشتر قابل توجه است - زمان ساخت مجدد هسته پس از ایجاد تغییرات در فایل های هدر به طور قابل توجهی کاهش یافته است (از 112٪ به 173٪ بسته به فایل هدر که تغییر می کند). بهینه‌سازی‌ها در حال حاضر فقط برای معماری‌های ARM64، MIPS، Sparc و x86 (32 و 64 بیتی) در دسترس هستند.

منبع: opennet.ru

خرید هاست قابل اعتماد برای سایت های دارای حفاظت DDoS، سرورهای VPS VDS 🔥 خرید هاستینگ معتبر با محافظت در برابر حملات DDoS، سرورهای VPS و VDS | ProHoster