У оквиру истраживачког пројекта
За тестирање
У следећој фази планирано је и премештање међупроцедуралних РТЛ оптимизација у засебне нити, узимајући у обзир карактеристике хардверске платформе. Након тога планирамо да имплементирамо паралелизацију интрапроцедуралних оптимизација (ИПА) примењених на код унутар функције, без обзира на специфичности позива. Ограничујућа веза за сада је сакупљач смећа, који је додао глобално закључавање које онемогућава операције сакупљања смећа док ради у вишенитном режиму (у будућности ће сакупљач смећа бити прилагођен за вишенитно извршавање ГЦЦ-а).
Да би се процениле промене у перформансама, припремљен је тест пакет који саставља датотеку гимпле-матцх.ц, која укључује више од 100 хиљада линија кода и 1700 функција. Тестови на систему са Интел Цоре и5-8250У ЦПУ-ом са 4 физичка језгра и 8 виртуелних (Хипертхреадинг) показали су смањење времена извршавања Интра Процедурал ГИМПЛЕ оптимизације са 7 на 4 секунде када се покреће 2 нити и на 3 секунде када се покреће 4 нити, тј. Повећање брзине разматране фазе монтаже постигнуто је за 1.72 и 2.52 пута, респективно. Тестови су такође показали да коришћење виртуелних језгара са Хипертхреадинг-ом не доводи до повећања перформанси.
Укупно време изградње је смањено за приближно 10%, али према предвиђањима, паралелизовање РТЛ оптимизације ће омогућити постизање опипљивијих резултата, јер је за ову фазу потребно знатно више времена током компилације. Приближно након РТЛ паралелизације, укупно време склапања ће се смањити за 1.61 пута. Након овога, биће могуће смањити време изградње за још 5-10% паралелизовањем ИПА оптимизација.
Извор: опеннет.ру