دانا کی تالیف کو تیز کرنے کے لیے پیچ کا ایک سیٹ شائع کیا گیا ہے۔ Linux 50-80% تک

Ingo Molnar، ایک مشہور ڈویلپر Linux کرنل اور سی ایف ایس (مکمل طور پر منصفانہ شیڈیولر) ٹاسک شیڈیولر کے مصنف نے اسے کرنل ڈویلپرز کی میلنگ لسٹ پر بحث کے لیے تجویز کیا۔ Linux پیچ کی ایک سیریز جو کرنل سورس کوڈ میں تمام فائلوں میں سے نصف سے زیادہ کو متاثر کرتی ہے اور سیٹنگز کے لحاظ سے مکمل کرنل کی دوبارہ تعمیر کی رفتار میں 50-80% اضافہ فراہم کرتی ہے۔ یہ اصلاح قابل ذکر ہے کیونکہ اس میں کرنل ڈویلپمنٹ کی تاریخ میں تبدیلیوں کا سب سے بڑا مجموعہ شامل ہے — 2297 پیچ ایک ساتھ شامل کرنے کے لیے تجویز کیے گئے ہیں، 25 سے زیادہ فائلوں کو تبدیل کرنا (10 ہیڈر فائلز "شامل/" اور "arch/*/include/" ڈائریکٹریز اور 15 سورس کوڈ فائلز)۔

کارکردگی کا فائدہ ہیڈر فائلوں کی پروسیسنگ کے طریقہ کار کو تبدیل کرکے حاصل کیا جاتا ہے۔ واضح رہے کہ کرنل کی ترقی کے تیس سال سے زیادہ عرصے میں، فائلوں کے درمیان کثیر تعداد میں کراس انحصار کی موجودگی کی وجہ سے ہیڈر فائلوں کی حالت افسردہ کن شکل اختیار کر گئی ہے۔ ہیڈر فائل کی تنظیم نو میں ایک سال سے زیادہ کا عرصہ لگا اور اس کے لیے تنظیمی ڈھانچے اور انحصار کے لیے اہم دوبارہ کام کرنے کی ضرورت تھی۔ تنظیم نو کے دوران، مختلف کرنل سب سسٹمز کے لیے ٹائپ ڈیفینیشنز اور APIs کو الگ کرنے کے لیے کام کیا گیا۔

کی گئی تبدیلیوں میں سے: اعلیٰ سطح کی ہیڈر فائلوں کو ایک دوسرے سے الگ کرنا، ہیڈر فائلوں کو جوڑنے والے ان لائن فنکشنز کو ختم کرنا، اقسام اور APIs کے لیے ہیڈر فائلوں کو الگ کرنا، ہیڈر فائلوں کی علیحدہ اسمبلی کو یقینی بنانا (تقریباً 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-bit) فن تعمیر کے لیے دستیاب ہے۔

ماخذ: opennet.ru

DDoS تحفظ، VPS VDS سرورز والی سائٹوں کے لیے قابل اعتماد ہوسٹنگ خریدیں۔ DDoS تحفظ، VPS VDS سرورز کے ساتھ قابل اعتماد ویب سائٹ ہوسٹنگ خریدیں۔ ProHoster