程序编译时属性的基准测试

12

如何评估编译程序所需的-fconstexpr-steps=-ftemplate-depth=参数的确切最小值?

我的当前做法是对一个值进行二分。但对于真实世界的模板加载程序,即使在值的上限上对数级别,它也变得非常耗时。

虽然有-v选项和-ftime-report选项,但它们的输出甚至没有提供关于实际使用的最大模板深度和计算常量表达式时实际传递的步骤数量的任何期望信息。

1个回答

3
你可以查看Boost.Hana如何进行基准测试。它的基准代码大多是以eRuby模板的形式编写的。这些模板用于生成C++文件,然后在收集编译和执行统计信息的同时进行编译。
当然,通过二分法手动查找-ftemplate-depth-fconstexpr-steps的必要值有点麻烦,但您也可以编写脚本(Ruby、Python或其他适合您的语言)来自动化此过程。只需在简单的while循环中将初始值加倍,直到程序成功编译即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接