Tôi đang viết một ứng dụng khá phức tạp, sử dụng nhiều container STL. Ứng dụng này có một phần nhạy cảm, hiệu suất tương đối đơn giản, lặp lại qua nhiều số std::map
và được thực thi hàng ngàn lần. Thử nghiệm đã được hiển thị so với việc biên dịch với các trình vòng lặp đã chọn bị vô hiệu hóa (_SECURE_SCL
được đặt thành 0) dẫn đến tăng tốc gần gấp 2 lần của toàn bộ chương trình, tập trung hoàn toàn vào phần này.Chọn lọc vô hiệu hóa các trình vòng lặp đã kiểm tra
Tuy nhiên, tôi không thể biên dịch ứng dụng với _SECURE_SCL
được đặt thành 0 vì cần liên kết với các thư viện được biên dịch với _SECURE_SCL
bật và trộn _SECURE_SCL
cài đặt dẫn đến sự cố. Ngoài ra, tôi thấy nó khá ngớ ngẩn khi sử dụng các trình vòng lặp không được kiểm soát trong toàn bộ ứng dụng, khi tất cả các bit nhạy cảm hiệu suất xảy ra trong một màn hình mã duy nhất. Điều đó tương đương với việc vứt bỏ đứa bé bằng nước tắm.
Tôi có những lựa chọn nào để chọn sử dụng các trình vòng lặp không được kiểm tra cho mã/vùng chứa nhạy cảm với hiệu suất trong khi vẫn duy trì tính tương thích với các thư viện được biên dịch với các trình vòng lặp đã kiểm tra?
Thanks for the help định dạng! – drxzcl
Rất vui được giúp đỡ. Một câu hỏi hay nên nhìn tốt! –