Tóm tắt: Tôi muốn tận dụng tối ưu hóa trình biên dịch và bộ hướng dẫn xử lý, nhưng vẫn có ứng dụng di động (chạy trên các bộ xử lý khác nhau). Thông thường tôi thực sự có thể biên dịch 5 lần và cho phép người dùng chọn đúng để chạy.Biên dịch và tối ưu hóa cho các kiến trúc đích khác nhau
Câu hỏi của tôi là: làm thế nào tôi có thể tự động hóa điều này, để bộ vi xử lý được phát hiện trong thời gian chạy và thực thi đúng được thực thi mà không cần người dùng phải chọn nó?
Tôi có một ứng dụng có nhiều phép tính toán ở mức độ thấp. Những tính toán này thường sẽ chạy trong một thời gian dài.
Tôi muốn tận dụng tối ưu hóa càng nhiều càng tốt, tốt nhất là các tập lệnh (không phải luôn được hỗ trợ). Mặt khác, tôi muốn ứng dụng của tôi có thể di chuyển và dễ sử dụng (vì vậy tôi không muốn biên dịch 5 phiên bản khác nhau và cho phép người dùng chọn).
Có khả năng biên dịch 5 phiên bản khác nhau của mã của tôi và chạy tự động phiên bản được tối ưu hóa nhất có thể vào thời gian thực thi không? Với 5 phiên bản khác nhau, tôi có ý nghĩa với các bộ hướng dẫn khác nhau và tối ưu hóa khác nhau cho bộ vi xử lý.
Tôi không quan tâm đến kích thước của ứng dụng.
Tại thời điểm này tôi đang sử dụng gcc trên Linux (mã của tôi bằng C++), nhưng tôi cũng quan tâm đến điều này cho trình biên dịch Intel và trình biên dịch MinGW để biên dịch sang Windows.
Tệp thực thi không nhất thiết phải chạy trên các hệ điều hành khác nhau, nhưng lý tưởng là có thể có thể tự động chọn 32 bit và 64 bit.
Chỉnh sửa: Vui lòng cung cấp cho con trỏ rõ ràng cách thực hiện, tốt nhất là với các ví dụ mã nhỏ hoặc liên kết đến giải thích. Theo quan điểm của tôi, tôi cần một giải pháp siêu chung, được áp dụng cho bất kỳ dự án C++ ngẫu nhiên nào mà tôi có sau này.
Chỉnh sửa Tôi đã giao tiền thưởng cho ShuggyCoUk, anh ấy có nhiều con trỏ để tìm kiếm. Tôi đã có thể thích chia nó giữa nhiều câu trả lời nhưng điều đó là không thể. Tôi chưa thực hiện điều này, vì vậy câu hỏi vẫn là 'mở'! Xin vui lòng, vẫn thêm và/hoặc cải thiện câu trả lời, mặc dù không có tiền thưởng được đưa ra nữa.
Cảm ơn mọi người!
Đây không phải là những gì Apple thực hiện với các tệp nhị phân "Phổ" (PPC - x86) của họ không? – Edmundo
Tôi đảm bảo rằng tôi đã +1 tất cả các câu trả lời mà tôi nghĩ là tốt, tất cả họ đều nhận được một chút từ tôi :). Chúc mừng cho chấp nhận. – ShuggyCoUk
Oh và nếu bạn tìm hiểu thêm thông tin khi bạn đi cùng hãy chỉnh sửa câu trả lời của tôi và làm cho nó CW ... – ShuggyCoUk