پيچ جو ھڪڙو سيٽ شايع ڪيو ويو آھي جيڪو لينڪس ڪنييل جي تعمير کي 50-80٪ تائين تيز ڪري ٿو

Ingo Molnar، هڪ مشهور لينڪس ڪرنل ڊولپر ۽ ليکڪ CFS (مڪمل طور تي منصفانه شيڊيولر) ٽاسڪ شيڊيولر، لينڪس ڪنيل ڊولپر ميلنگ لسٽ تي بحث لاءِ تجويز ڪيو پيچ جو هڪ سلسلو جيڪو سڀني فائلن جي اڌ کان وڌيڪ متاثر ڪري ٿو ڪرنل ذريعن ۾ ۽ سيٽنگن جي بنياد تي 50-80٪ تائين مڪمل ڪنيل جي ٻيهر تعمير جي رفتار ۾ اضافو مهيا ڪريو. لاڳو ڪيل اصلاح قابل ذڪر آهي ته اهو ڪنييل ڊولپمينٽ جي تاريخ ۾ تبديلين جي سڀ کان وڏي سيٽ جي اضافي سان جڙيل آهي - 2297 پيچ هڪ ڀيرو شامل ڪرڻ لاءِ تجويز ڪيا ويا، 25 هزار کان وڌيڪ فائلن کي تبديل ڪيو (10 هزار هيڊر فائلون "شامل آهن. /” ۽ “آرچ/*/شامل/”ڊائريڪٽريز“ ۽ 15 هزار فائلون ماخذ متن سان).

هيڊر فائلن جي پروسيسنگ جي طريقي کي تبديل ڪندي ڪارڪردگي حاصل ڪئي وئي آهي. اهو نوٽ ڪيو وڃي ٿو ته 30 سالن کان وڌيڪ ڪرنل ڊولپمينٽ، فائلن جي وچ ۾ ڪراس-انحصار جي وڏي تعداد جي موجودگي جي ڪري هيڊر فائلن جي حالت هڪ مايوس ڪندڙ ظهور تي ورتو آهي. هيڊر فائل جي بحالي هڪ سال کان مٿي ٿي وئي ۽ گهربل حدن ۽ انحصار جي اهم ٻيهر ڪم ڪرڻ جي ضرورت آهي. بحاليءَ دوران، ڪم ڪيو ويو مختلف قسم جي وصفن ۽ 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 بلڊز تائين. في ڪلاڪ)، ۽ اسيمبلين دوران سي پي يو ڪور استعمال ڪرڻ جي ڪارڪردگي پڻ وڌائي. هڪ وڌندڙ تعمير سان، اصلاح جو اثر اڃا به وڌيڪ قابل ذڪر آهي - هيڊر فائلن ۾ تبديليون ڪرڻ کان پوء ڪرنل کي ٻيهر تعمير ڪرڻ جو وقت تمام گهڻو گهٽجي ويو آهي (112٪ کان 173٪ تائين منحصر هيڊر فائل تبديل ٿي رهيو آهي). اصلاحون في الحال صرف ARM64، MIPS، Sparc ۽ x86 (32- ۽ 64-bit) آرڪيٽيڪچرز لاءِ موجود آهن.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو