เป็นส่วนหนึ่งของโครงการวิจัย
สำหรับการทดสอบ
ในขั้นตอนต่อไป มีการวางแผนที่จะย้ายการเพิ่มประสิทธิภาพ RTL ระหว่างโพรซีเดอร์ไปยังเธรดที่แยกจากกัน โดยคำนึงถึงลักษณะของแพลตฟอร์มฮาร์ดแวร์ หลังจากนั้น เราวางแผนที่จะใช้การปรับให้เหมาะสมภายในกระบวนการ (IPA) แบบขนานที่ใช้กับโค้ดภายในฟังก์ชัน โดยไม่คำนึงถึงลักษณะเฉพาะของการโทร ลิงก์ที่จำกัดในตอนนี้คือตัวรวบรวมขยะ ซึ่งได้เพิ่มการล็อกส่วนกลางที่ปิดใช้งานการดำเนินการรวบรวมขยะในขณะที่ทำงานในโหมดมัลติเธรด (ในอนาคต ตัวรวบรวมขยะจะถูกปรับใช้สำหรับการดำเนินการแบบมัลติเธรดของ GCC)
เพื่อประเมินการเปลี่ยนแปลงประสิทธิภาพ เราได้เตรียมชุดทดสอบที่รวบรวมไฟล์ gimple-match.c ซึ่งประกอบด้วยโค้ดมากกว่า 100 บรรทัดและฟังก์ชัน 1700 รายการ การทดสอบบนระบบที่ใช้ CPU Intel Core i5-8250U พร้อม 4 คอร์จริงและ 8 เสมือน (Hyperthreading) แสดงให้เห็นการลดลงของเวลาดำเนินการของการเพิ่มประสิทธิภาพ Intra Procedural GIMPLE จาก 7 เป็น 4 วินาทีเมื่อรัน 2 เธรด และเหลือ 3 วินาทีเมื่อรัน 4 กระทู้เช่น ความเร็วของขั้นตอนการประกอบที่พิจารณาเพิ่มขึ้น 1.72 และ 2.52 เท่า ตามลำดับ การทดสอบยังแสดงให้เห็นว่าการใช้คอร์เสมือนกับ Hyperthreading ไม่ได้ทำให้ประสิทธิภาพเพิ่มขึ้น
เวลาในการสร้างโดยรวมลดลงประมาณ 10% แต่ตามการคาดการณ์ การเพิ่มประสิทธิภาพ RTL แบบขนานจะช่วยให้บรรลุผลลัพธ์ที่จับต้องได้มากขึ้น เนื่องจากขั้นตอนนี้ใช้เวลาในการคอมไพล์มากขึ้นอย่างมาก ประมาณหลังจากการขนาน RTL เวลาการประกอบทั้งหมดจะลดลง 1.61 เท่า หลังจากนี้ จะสามารถลดเวลาในการสร้างลงอีก 5-10% โดยการเพิ่มประสิทธิภาพ IPA แบบขนาน
ที่มา: opennet.ru