การคอมไพล์ vs การใช้งานไบนารีที่สร้างไว้ล่วงหน้า?


11

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


2
การคอมไพล์เพื่อให้เข้ากันได้กับสถาปัตยกรรมหลาย ๆ อันอาจกำจัดการเพิ่มประสิทธิภาพบางอย่างที่อาจเป็นไปได้เมื่อรวบรวมสำหรับสถาปัตยกรรมเดียว
Robert Harvey

1
นอกเหนือจากการกำหนดเป้าหมายมากขึ้น (ซึ่งเกือบจะเป็นประโยชน์) คุณอาจจะยังพบความแตกต่างอย่างมากระหว่างคอมไพเลอร์ - คอมไพเลอร์ที่แตกต่างกันสนับสนุน optimisations ที่แตกต่างกันและบางครั้ง bottlenecks ประสิทธิภาพอาจถูกปรับออกไปโดยหนึ่ง แต่ไม่อื่น ๆ (s)
แดเนียล B

คำตอบ:


8

ในหลายกรณี (ถ้าไม่ใช่มากที่สุด) ใช่ เนื่องจากคอมไพเลอร์สามารถสร้างโค้ดเนทีฟที่เหมาะสำหรับ CPU และสภาพแวดล้อมนั้น ๆ รหัสคือ "เป้าหมาย" มากกว่า


7

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

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


ดังนั้นความพยายามในการรวบรวมของฉันอาจไม่ไร้ประโยชน์ ฉันดาวน์โหลดซอร์สไปยัง mod_jk และรวบรวมและมันก็เร็วมากและฉันสงสัยว่าเป็นเพราะการรวบรวมด้วยตนเอง ขอบคุณสำหรับคำตอบ
Niklas

1

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

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.