Tədqiqat layihəsinin bir hissəsi kimi
Test üçün
Növbəti mərhələdə, həmçinin aparat platformasının xüsusiyyətlərini nəzərə alaraq prosedurlararası RTL optimallaşdırmalarının ayrı-ayrı mövzulara köçürülməsi planlaşdırılır. Bundan sonra çağırışın xüsusiyyətlərindən asılı olmayaraq funksiya daxilində koda tətbiq edilən prosedurdaxili optimallaşdırmaların (IPA) paralelləşdirilməsinin həyata keçirilməsi planlaşdırılır. İndiyə qədər məhdudlaşdırıcı əlaqə çox yivli rejimdə işləyərkən zibil toplama əməliyyatlarını qeyri-aktiv edən qlobal kilidə malik olan zibil toplayıcısıdır (gələcəkdə zibil kollektoru GCC multithreading üçün uyğunlaşdırılacaq).
Performansdakı dəyişikliyi qiymətləndirmək üçün 100 mindən çox kod sətirini və 1700 funksiyanı özündə birləşdirən gimple-match.c faylını quran test paketi hazırlanmışdır. 5 fiziki nüvəyə və 8250 virtual nüvəyə (Hyperthreading) malik Intel Core i4-8U CPU-lu sistemdə aparılan sınaqlar, 7 başlıq işə salındıqda GIMPLEdaxili optimallaşdırmaların icra müddətinin 4-dən 2 saniyəyə qədər azaldığını göstərdi. 3 mövzunun başlanğıcı, yəni. nəzərdən keçirilən montaj mərhələsinin sürətinin müvafiq olaraq 4 və 1.72 dəfə artmasına nail olundu. Testlər həmçinin göstərdi ki, Hyperthreading ilə virtual nüvələrdən istifadə performans artımına səbəb olmur.
Ümumi tikinti müddəti təxminən 10% azaldılıb, lakin RTL optimallaşdırmalarının paralelləşdirilməsinin daha nəzərəçarpacaq nəticələr əldə edəcəyi proqnozlaşdırılır, çünki bu mərhələnin tərtib edilməsi xeyli uzun çəkir. Təxminən RTL paralelləşdirməsindən sonra ümumi montaj vaxtı 1.61 dəfə azalacaq. Bundan sonra IPA optimallaşdırmalarının paralelləşdirilməsi hesabına tikinti müddətini daha 5-10% azaltmaq mümkün olacaq.
Mənbə: opennet.ru