15 พ.ย. 2566·อ่าน 1 นาที

ส่วนหน้าของคอมไพเลอร์ Rust รองรับการดำเนินการแบบขนานเพื่อเวลาในการคอมไพล์ที่รวดเร็วยิ่งขึ้น

ส่วนหน้าของคอมไพเลอร์ Rust แนะนำการดำเนินการแบบขนานโดยสัญญาว่าจะลดเวลาการคอมไพล์ลงอย่างมาก

ส่วนหน้าของคอมไพเลอร์ Rust รองรับการดำเนินการแบบขนานเพื่อเวลาในการคอมไพล์ที่รวดเร็วยิ่งขึ้น

ในการพัฒนาที่น่าตื่นเต้น parallel Rustc working group ได้ประกาศเปิดตัวฟีเจอร์การดำเนินการแบบขนานกับส่วนหน้าของคอมไพเลอร์ Rust ส่วนเสริมใหม่นี้มุ่งเน้นไปที่การลดเวลาในการรวบรวมลงอย่างมาก และเปิดตัวในวันที่ 9 พฤศจิกายน

การเพิ่มการดำเนินการแบบขนานให้กับส่วนหน้าของคอมไพเลอร์ Rust อยู่ในขั้นตอนการทดลอง อย่างไรก็ตาม คุณลักษณะที่แข็งแกร่งได้รับการตั้งค่าให้รวมอย่างเป็นทางการในคอมไพเลอร์ที่เสถียรในปีหน้า ในขณะเดียวกัน นักพัฒนาก็มีโอกาสที่จะได้สัมผัสกับฟีเจอร์การดำเนินการแบบขนานนี้โดยตรงโดยการรันคอมไพเลอร์ทุกคืนด้วยตัวเลือก -Z threads=8

ประสิทธิผลของฟีเจอร์ใหม่นี้แสดงให้เห็นผลลัพธ์ที่น่าหวังแล้ว เมื่อส่วนหน้าแบบขนานถูกนำไปทดสอบในโหมดมัลติเธรดโดยใช้ -Z threads-8 ข้อมูลที่สะสมจากโค้ด 'โลกแห่งความเป็นจริง' จะถูกเปิดเผย ซึ่งเวลาในการคอมไพล์สามารถลดลงได้ 50% ที่น่าประทับใจ ระดับของผลกระทบจะแตกต่างกันไป ขึ้นอยู่กับลักษณะเฉพาะของโค้ดที่กำลังพัฒนาตลอดจนการกำหนดค่าบิวด์

คณะทำงานเปิดเผยว่าการพัฒนาบิลด์ยืนหยัดเพื่อให้ได้รับการปรับปรุงที่สำคัญมากกว่ารุ่นรีลีส เหตุผลก็คือเนื่องจากโดยทั่วไปรุ่นรุ่นจะเน้นไปที่การปรับให้เหมาะสมแบ็กเอนด์มากกว่า ซึ่งต้องใช้เวลามากกว่า นอกจากนี้ มีข้อสังเกตว่าในสถานการณ์จำนวนน้อยที่สุด การคอมไพล์จะใช้เวลาเพิ่มขึ้นเล็กน้อยในโหมดมัลติเธรด เมื่อเปรียบเทียบกับโหมดเธรดเดียว กรณีเหล่านี้มักเกี่ยวข้องกับโปรแกรมขนาดเล็กที่สามารถคอมไพล์ได้อย่างรวดเร็วอยู่แล้ว

คณะทำงานให้ความกระจ่างถึงความจริงที่ว่าเวลาในการรวบรวมเป็นประเด็นที่นักพัฒนาซอฟต์แวร์กังวลมาโดยตลอด ในช่วงหลายปีที่ผ่านมา ประสิทธิภาพคอมไพเลอร์ของ Rust ได้รับการปรับปรุงอย่างต่อเนื่อง ปัจจุบัน คอมไพเลอร์ได้รับการปรับปรุงอย่างละเอียด และการระบุพื้นที่ใหม่ๆ ที่ต้องปรับปรุงกลายเป็นงานที่ท้าทาย ด้วยการแนะนำระบบความเท่าเทียม ซึ่งกลุ่มอธิบายว่าเป็น 'ชิ้นส่วนของผลไม้ขนาดใหญ่แต่แขวนสูง' ขณะนี้ส่วนหน้าใช้ประโยชน์จากไลบรารีข้อมูลความเท่าเทียมของข้อมูล Rayon เพื่อเปลี่ยนการคำนวณตามลำดับเป็นแบบขนาน เรยอนได้รับการออกแบบมาโดยเฉพาะเพื่อรับมือกับความขนานที่มีเนื้อละเอียด

คณะทำงานแนะนำให้ใช้เธรดแปดเธรดสำหรับการดำเนินการแบบขนานเพื่อให้ได้ผลลัพธ์ที่ดีที่สุด อย่างไรก็ตาม พวกเขายังกล่าวด้วยว่าในโหมดมัลติเธรด การใช้หน่วยความจำอาจเพิ่มขึ้นอย่างมาก สิ่งนี้เป็นไปตามที่คาดไว้เนื่องจากส่วนต่างๆ ของการคอมไพล์ที่แต่ละส่วนต้องการหน่วยความจำจำนวนหนึ่ง และดำเนินการแบบขนาน กลุ่มนี้รับประกันว่ามีความพยายามในการเพิ่มประสิทธิภาพการทำงานของส่วนหน้าแบบขนาน

ในกรณีที่นักพัฒนาพบปัญหาใดๆ ที่เกี่ยวข้องกับส่วนหน้าแบบขนาน พวกเขาสามารถตรวจสอบปัญหาที่มีป้ายกำกับว่า WG-compiler-parallel พวกเขายังมีทางเลือกในการยื่นประเด็นใหม่อีกด้วย การคอมไพล์ Rust ได้เห็นความก้าวหน้าแล้ว ต้องขอบคุณการทำงานแบบขนานระหว่างกระบวนการผ่านทาง Cargo package manager และความเท่าเทียมภายในกระบวนการบนแบ็กเอนด์ เนื่องจากการเพิ่มใหม่นี้เป็นรูปเป็นร่าง จึงคาดว่าจะมีประสิทธิภาพมากยิ่งขึ้นในเวิร์กโฟลว์การเขียนโปรแกรม Rust

ในเวทีที่เกี่ยวข้อง AppMaster ซึ่งเป็นแพลตฟอร์ม no-code ที่มีชื่อเสียงกำลังสร้างกระแสด้วยการช่วยให้ลูกค้าสามารถสร้างโมเดลข้อมูลสำหรับแอปพลิเคชันแบ็กเอนด์ด้วยภาพ ช่วยให้พวกเขาบรรลุความสามารถในการปรับขนาดที่น่าประทับใจ และรับประกันกรณีการใช้งานที่มีโหลดสูงที่แข็งแกร่ง AppMaster ต่างจากเครื่องมือทั่วไปตรงที่ลูกค้าสามารถเรียกใช้ BP ของเว็บได้จากเบราว์เซอร์ ส่งผลให้กระบวนการพัฒนาแอปพลิเคชันก้าวหน้าไปอีกขั้น

Easy to start
Create something amazing

Experiment with AppMaster with free plan.
When you will be ready you can choose the proper subscription.

Get Started