Biên dịch vs sử dụng hiệu suất nhị phân dựng sẵn?


11

Hiệu suất sẽ tốt hơn (nhanh hơn) nếu tôi tự biên dịch nguồn cho một thành phần phần mềm cho máy thực tế mà nó sẽ được sử dụng, so với nếu nguồn được biên dịch trên nền tảng khác có lẽ cho nhiều kiến ​​trúc khác nhau? Tôi đã nhận được một số nguồn biên dịch kết quả tốt mà tôi đã tải xuống và tôi tự hỏi liệu đây có phải là do biên dịch nó thay vì tải xuống một tệp nhị phân được biên dịch trước thường xảy ra với các bản cập nhật phần mềm hay không.


2
Biên dịch để tương thích với nhiều kiến ​​trúc có khả năng loại bỏ một số tối ưu hóa nhất định có thể có khi biên dịch cho một kiến ​​trúc.
Robert Harvey

1
Ngoài việc được nhắm mục tiêu nhiều hơn (hầu như sẽ luôn có lợi), bạn có thể cũng sẽ gặp phải sự khác biệt lớn giữa các trình biên dịch - các trình biên dịch khác nhau hỗ trợ các tối ưu hóa khác nhau và đôi khi các nút cổ chai hiệu năng có thể được tối ưu hóa bởi một, nhưng không phải là các nút khác.
Daniel B

Câu trả lời:


8

Trong nhiều trường hợp (nếu không phải hầu hết), có. Điều này là do trình biên dịch có thể tạo mã gốc được tối ưu hóa cho CPU và môi trường cụ thể đó. Mã này được "nhắm mục tiêu" hơn.


7

Biên dịch từ các nguồn cung cấp cho bạn một lợi thế của việc đặt cờ trình biên dịch theo cách bạn muốn cho nền tảng cụ thể của mình. Tải xuống gói đã được biên dịch với cùng cài đặt chính xác như của bạn sẽ không có gì khác biệt, nhưng thay đổi cài đặt từ mặc định có thể giúp bạn cải thiện lớn.

Ví dụ: nếu các tệp nhị phân được cung cấp để tải xuống được biên dịch để gỡ lỗi (cố ý hoặc do nhầm lẫn), bật tối ưu hóa mạnh hơn sẽ cải thiện hiệu suất trong gần như tất cả các tình huống. Mặt khác, nếu mã được biên dịch được tối ưu hóa đến mức tối đa, bạn sẽ không thấy bất kỳ sự khác biệt nào.


Vì vậy, nỗ lực biên dịch của tôi có thể không phải là vô ích. Tôi đã tải nguồn về mod_jk và biên dịch và nó rất nhanh và tôi tự hỏi liệu đó có phải là do quá trình biên dịch thủ công không. Cảm ơn bạn đã trả lời.
Niklas

1

Điều này thực sự phụ thuộc vào hai trình biên dịch và cờ biên dịch được sử dụng. Thông thường, trình biên dịch và cài đặt cờ trên máy cục bộ của bạn phù hợp hơn với máy cụ thể của bạn nếu bạn có những thứ được cấu hình đúng.

Tuy nhiên, nếu, chẳng hạn, nhị phân dựng sẵn tình cờ được xây dựng với trình biên dịch tối ưu hóa tốt hơn nhiều (hoặc một tiêu chuẩn đặc biệt được thiết kế với các cờ được điều chỉnh cho đoạn mã cụ thể đó và do may mắn phù hợp với hệ thống của bạn) so với trình biên dịch trên hệ thống của bạn, có thể là bất kỳ trình biên dịch nào trên hệ thống của bạn thực sự có thể tạo ra hiệu năng kém hơn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.