ได้มีการกล่าวว่าการรวบรวมเครื่องมือ GNU และเคอร์เนล Linux พร้อม-O3
ตัวเลือกการเพิ่มประสิทธิภาพ gcc จะสร้างข้อผิดพลาดที่แปลกและแปลกใหม่ จริงป้ะ? มีใครลองดูบ้างหรือว่ามันเป็นเรื่องหลอกลวง?
ได้มีการกล่าวว่าการรวบรวมเครื่องมือ GNU และเคอร์เนล Linux พร้อม-O3
ตัวเลือกการเพิ่มประสิทธิภาพ gcc จะสร้างข้อผิดพลาดที่แปลกและแปลกใหม่ จริงป้ะ? มีใครลองดูบ้างหรือว่ามันเป็นเรื่องหลอกลวง?
คำตอบ:
มันใช้ใน Gentoo และฉันไม่ได้สังเกตอะไรผิดปกติ
-O3
มีข้อเสียหลายประการ:
-O2
-Os
บางครั้งมันสร้างรหัสอีกต่อไปเนื่องจากการวนซ้ำการคลี่คลายซึ่งในความเป็นจริงอาจช้าลงเนื่องจากประสิทธิภาพของรหัสแคชที่แย่-O3
เดียวกันอาจนำไปใช้สำหรับ-O3
การตั้งค่าสถานะจะไม่เปลี่ยนแปลงต้นทุนของการสลับบริบทหรือความเร็วของ I / O ฉันไม่คิดว่าการเพิ่มความเร็วโดยรวม <0.1% ของประสิทธิภาพโดยรวมจะคุ้มค่าโปรดทราบว่าส่วนใหญ่ของ toolchain (โดยเฉพาะ glibc) จะไม่เรียบถ้าคุณเปลี่ยนระดับการปรับให้เหมาะสม ระบบบิลด์ถูกตั้งค่าให้ละเว้นการตั้งค่า -O ของคุณสำหรับส่วนเหล่านี้ใน distros ที่มีสติส่วนใหญ่
กล่าวง่ายๆคือไลบรารีพื้นฐานและคุณสมบัติของระบบปฏิบัติการขึ้นอยู่กับรหัสที่ทำในสิ่งที่มันพูดไม่ใช่สิ่งที่จะเร็วขึ้นในหลาย ๆ กรณี -fgcse-after-reload โดยเฉพาะ (เปิดใช้งานโดย -O3) อาจทำให้เกิดปัญหาแปลก ๆ
ในช่วง 10 ปีที่ผ่านมาฉันได้ใช้ระบบ Gentoo หลายระบบที่มีแพ็คเกจมากกว่า 1,000 รายการที่ใช้-O3 -march=native
ทั่วโลกและยังไม่พบปัญหาความมั่นคงในตำนานที่-O3
ควรจะมี มาตรฐานของแอพพลิเคชั่นที่ใช้ CPU มาก (เช่นแอพพลิเคชั่นคณิตศาสตร์ / วิทยาศาสตร์) แสดงให้เห็นอย่างสม่ำเสมอ-O3
เพื่อสร้างโค้ดที่เร็วขึ้นหลังจากนั้นมันก็จะไร้จุดหมายหากไม่มี สำหรับแอพเดสก์ท็อปส่วนใหญ่CFLAGS
นั้นไม่ได้มีความสำคัญอะไรมากนักเนื่องจากมันถูกผูกไว้กับ IO แต่มันมีความสำคัญอย่างมากสำหรับฝั่งเซิร์ฟเวอร์ที่ CPU ผูกไว้
- O3 ใช้การเพิ่มประสิทธิภาพเชิงรุกบางอย่างที่ปลอดภัยเฉพาะในกรณีที่สมมติฐานบางอย่างเกี่ยวกับการใช้รีจิสเตอร์การโต้ตอบของเฟรมสแต็กและฟังก์ชัน reentrancy เป็นจริงและสมมติฐานเหล่านี้ไม่รับประกันว่าจะเป็นจริงในรหัสบางอย่างเช่นเคอร์เนล ใช้แล้ว (เนื่องจากอยู่ในบางส่วนของเคอร์เนลและโมดูลไดรเวอร์)
-O2
กับรู้สภาพอากาศหรือไม่ว่ามันเจ็บหรือช่วยเหลือ
ในขณะที่คุณสามารถหลีกเลี่ยงการใช้ -O3 และปุ่มปรับแต่งอื่น ๆ ในแอพพลิเคชั่นส่วนใหญ่ (และอาจส่งผลให้มีการปรับปรุงความเร็ว) ฉันลังเลที่จะใช้การปรับแต่งเคอร์เนลเองหรือบนโซ่เครื่องมือที่จำเป็นสำหรับการสร้าง ฯลฯ )
ลองคิดดูสิ: ประสิทธิภาพเพิ่มขึ้น 5% ของการโจมตีและระบบย่อย ext3 ที่คุ้มค่ากับการล่มของระบบหรือการสูญหายของข้อมูลและ / หรือความเสียหาย
บิดลูกบิดทั้งหมดเพื่อต้องการพอร์ต Quake ที่คุณกำลังเล่นหรือตัวแปลงสัญญาณเสียง / วิดีโอที่คุณใช้สำหรับการคัดลอกคอลเลกชัน DVD ของคุณไปยังไฟล์ Divx คุณอาจจะเห็นการปรับปรุง เพียงแค่ไม่ยุ่งกับเคอร์เนลจนกว่าคุณจะมีเวลาเสียและข้อมูลที่คุณสามารถสูญเสีย
-O0
ก็คือไม่รองรับเลย! stackoverflow.com/questions/29151235/…