2015-12-14 17 views
11

Cách tốt nhất để đánh giá giá trị tối thiểu chính xác của -fconstexpr-steps=-ftemplate-depth= parametres cần thiết cho việc biên dịch chương trình là gì?Các tính chất biên dịch điểm chuẩn của chương trình

Điều tôi hiện làm là chia đôi giá trị. Nhưng đối với các chương trình được nạp mẫu trong thế giới thực, nó trở thành hoạt động rất dài, thậm chí là lôgarít trên giới hạn trên của một giá trị.

Có tùy chọn -v-ftime-report, nhưng ngay cả đầu ra của chúng cũng không cung cấp bất kỳ thông tin mong muốn nào về độ sâu mẫu tối đa thực tế đã sử dụng và số bước thực sự truyền trong quá trình đánh giá biểu thức không đổi.

Trả lời

3

Bạn có thể xem cách Boost.Hana thực hiện điểm chuẩn của nó. Mã điểm chuẩn của nó được viết chủ yếu dưới dạng eRuby templates. Các mẫu được sử dụng để tạo ra các tệp C++ sau đó được biên dịch trong khi thu thập các thống kê biên dịch và thực thi.

Việc chuyển đổi để tìm các giá trị cần thiết của -ftemplate-depth-fconstexpr-steps dĩ nhiên hơi phức tạp để thực hiện bằng tay, nhưng bạn cũng có thể viết một kịch bản (Ruby, Python, bất cứ điều gì nổi trên thuyền của bạn) để tự động hóa điều này. Chỉ cần tăng gấp đôi giá trị ban đầu trong một vòng lặp while đơn giản cho đến khi chương trình biên dịch thành công.

Các vấn đề liên quan