Sebagai sebahagian daripada projek penyelidikan
Untuk ujian
Pada peringkat seterusnya, ia juga dirancang untuk memindahkan pengoptimuman RTL antara prosedur ke dalam benang yang berasingan, dengan mengambil kira ciri-ciri platform perkakasan. Selepas itu, kami merancang untuk melaksanakan penyelarasan pengoptimuman intraprosedural (IPA) yang digunakan pada kod di dalam fungsi, tanpa mengira spesifik panggilan. Pautan mengehadkan buat masa ini ialah pemungut sampah, yang telah menambah kunci global yang melumpuhkan operasi pengumpulan sampah semasa berjalan dalam mod berbilang benang (pada masa hadapan pemungut sampah akan disesuaikan untuk pelaksanaan berbilang benang bagi GCC).
Untuk menilai perubahan dalam prestasi, suite ujian telah disediakan yang memasang fail gimple-match.c, yang merangkumi lebih daripada 100 ribu baris kod dan 1700 fungsi. Ujian pada sistem dengan CPU Intel Core i5-8250U dengan 4 teras fizikal dan 8 maya (Hyperthreading) menunjukkan pengurangan dalam masa pelaksanaan pengoptimuman GIMPLE Intra Procedural daripada 7 hingga 4 saat apabila menjalankan 2 utas dan kepada 3 saat apabila menjalankan 4 benang, i.e. Peningkatan dalam kelajuan peringkat pemasangan yang sedang dipertimbangkan telah dicapai masing-masing sebanyak 1.72 dan 2.52 kali. Ujian juga menunjukkan bahawa menggunakan teras maya dengan Hyperthreading tidak membawa kepada peningkatan prestasi.
Masa binaan keseluruhan telah dikurangkan sebanyak kira-kira 10%, tetapi menurut ramalan, pengoptimuman RTL yang selari akan membolehkan mencapai hasil yang lebih ketara, memandangkan peringkat ini mengambil masa yang lebih banyak semasa penyusunan. Kira-kira selepas selari RTL, jumlah masa pemasangan akan dikurangkan sebanyak 1.61 kali. Selepas ini, masa binaan boleh dikurangkan sebanyak 5-10% lagi dengan menyelaraskan pengoptimuman IPA.
Sumber: opennet.ru