Câu trả lời:
Nó được sử dụng trong Gentoo và tôi không nhận thấy điều gì bất thường.
-O3
có một số nhược điểm:
-O2
hoặc -Os
. Đôi khi, nó tạo ra mã dài hơn do không kiểm soát được vòng lặp, điều này có thể thực tế chậm hơn do hiệu năng mã bộ đệm kém hơn.-O3
.-O3
cờ sẽ không thay đổi chi phí chuyển đổi ngữ cảnh hoặc tốc độ của I / O. Tôi không nghĩ một cái gì đó như <0,1% tăng tốc hiệu suất tổng thể là xứng đáng.Lưu ý rằng các khối lớn của chuỗi công cụ (cụ thể là glibc) không được biên dịch nếu bạn thay đổi mức tối ưu hóa. Hệ thống xây dựng được thiết lập để bỏ qua các tùy chọn -O của bạn cho các phần này trên hầu hết các bản phát hành lành mạnh.
Nói một cách đơn giản, một số tính năng thư viện và hệ điều hành cơ bản nhất định phụ thuộc vào mã thực sự làm những gì nó nói, chứ không phải những gì sẽ nhanh hơn trong nhiều trường hợp. -fgcse-after-load nói riêng (được bật bởi -O3) có thể gây ra sự cố kỳ lạ.
Trong hơn 10 năm qua, tôi đã chạy nhiều hệ thống Gentoo với hơn 1000 gói sử dụng -O3 -march=native
trên toàn cầu và vẫn chưa gặp phải bất kỳ vấn đề ổn định huyền thoại nào -O3
đáng lẽ phải có. Điểm chuẩn của các ứng dụng chuyên sâu về CPU (như ứng dụng toán học / khoa học) luôn hiển thị -O3
để tạo mã nhanh hơn, sau tất cả, sẽ là vô nghĩa nếu không. Đối với phần lớn các ứng dụng máy tính để bàn CFLAGS
dù sao cũng không quan trọng bằng vì chúng bị ràng buộc IO, nhưng nó rất quan trọng đối với các công cụ phía máy chủ bị ràng buộc CPU.
-O3 sử dụng một số tối ưu hóa mạnh mẽ chỉ an toàn nếu một số giả định nhất định về việc sử dụng thanh ghi, cách các khung ngăn xếp được tương tác và tái bảo vệ chức năng là đúng và các giả định này không được đảm bảo là đúng trong một số mã như kernel, đặc biệt là khi lắp ráp nội tuyến được sử dụng (vì nó nằm trong một số phần rất thấp của kernel và các mô-đun trình điều khiển của nó).
-O2
việc biết thời tiết hay không, nó có đau hay không
Mặc dù bạn có thể thoát khỏi việc sử dụng -O3 và các nút tối ưu hóa khác trên hầu hết các ứng dụng (và nó có thể giúp cải thiện tốc độ), tôi sẽ ngần ngại sử dụng các tinh chỉnh đó như chính hạt nhân hoặc trên chuỗi công cụ cần thiết để xây dựng nó (trình biên dịch, binutils, v.v.)
Hãy suy nghĩ về nó: Là mức tăng hiệu suất 5% của các hệ thống con đột kích và ext3 có đáng bị sập hệ thống hoặc mất dữ liệu tiềm năng và / hoặc tham nhũng không?
Tinh chỉnh tất cả các nút cần cho cổng Quake mà bạn đang phát hoặc codec âm thanh / video bạn sử dụng để trích xuất bộ sưu tập DVD của mình sang các tệp divx. Bạn có thể sẽ thấy một sự cải thiện. Đừng lộn xộn với hạt nhân trừ khi bạn có thời gian để lãng phí và dữ liệu bạn có thể chịu mất.
-O0
là không được hỗ trợ ở tất cả! stackoverflow.com/questions/29151235/ từ