Việc biên dịch trình biên dịch như GCC có mang lại hiệu suất tốt hơn không?
Chương trình được biên dịch riêng cho nền tảng đích được sử dụng thường sẽ hoạt động tốt hơn chương trình được biên dịch cho nền tảng chung. Tại sao điều này? Kiến thức về harware có thể giúp trình biên dịch sắp xếp dữ liệu thành bộ nhớ cache thân thiện và chọn thứ tự lệnh phù hợp với pipelining của CPU.
Lợi ích lớn nhất là đạt được bằng cách tận dụng các tập lệnh cụ thể như SSE (trong các phiên bản khác nhau của nó). Mặt khác, bạn nên tự hỏi mình nếu một programm như GCC thực sự là CPU bị ràng buộc (nhiều khả năng nó sẽ được IO bị ràng buộc) và điều chỉnh hiệu suất CPU của nó cung cấp bất kỳ lợi ích đo lường được.
mã biên dịch bởi trình biên dịch biên soạn riêng tôi sẽ thực hiện tốt hơn
Hy vọng rằng không! Việc cho phép trình biên dịch tối ưu hóa một chương trình sẽ không bao giờ thay đổi hành vi của nó. Không có vấn đề làm thế nào bạn biên dịch GCC của bạn, nó nên biên dịch mã để các mã nhị phân giống như một phân phối nhị phân chung của GCC sẽ.
Nếu mã được biên dịch cho nền tảng cụ thể nhanh hơn mã compil cho nền tảng chung, tại sao chúng ta không gửi mã thay vì mã nhị phân? Đoán xem cái gì, một số bản phân phối Linux thực sự tuân theo phillosophy này, như Gentoo. Và trong khi bạn đang ở đó, hãy chắc chắn để xây dựng nhị phân liên kết tĩnh, không gian đĩa là rất rẻ ngày nay và nó mang lại cho bạn ít nhất một 0,001% hiệu suất.
Được rồi, đó là một chút mỉa mai. Lý do mọi người phân phối các tệp nhị phân chung là khá rõ ràng: Đó là genirc, mẫu số chung thấp nhất và nó sẽ hoạt động ở mọi nơi. Đó là một phần thưởng lớn về tính linh hoạt và thân thiện với người dùng. Tôi nhớ một khi biên dịch Gnome cho hộp Gentoo của tôi, mất một hoặc hai ngày! (Nhưng nó phải nhanh hơn rất nhiều ;-))
Mặt khác, có những dịp bạn muốn có hiệu suất tốt nhất có thể và có ý nghĩa khi xây dựng và tối ưu hóa cho các kiến trúc cụ thể.
Nguồn
2012-01-23 13:24:47
_ Kính bảo hộ! Họ không làm gì cả! _;) – Izkata
Vâng, tôi đã hỏi họ, nhưng họ bận rộn trên bức tường trèo :-P – Oz123
Yo dawg, tôi nghe bạn như những người biên dịch. – joshin4colours