visual-c++ - Visual C++ 项目中的特征。与内联函数扩展的链接非常慢
问题描述
我正在研究一个重矩阵和向量代数的模拟程序,为此我在 i7-3770k 和 16Gb 上使用 Eigen 和 Visual Studio(2017 和 2019,没有区别)。我绝不是 C++ 或 Visual Studio 方面的专家。
在调试模式下构建,所有优化和内联函数扩展关闭非常快,但执行时间比发布模式下要慢得多,以至于测试和进一步的代码工作变得难以管理。问题是,具有某些优化的发布模式下的编译时间非常慢。我的程序非常小(大约 23 个源文件,每个代码在 50 到 1500 行之间)。
我追溯了关键因素是内联函数扩展选项。根据其设置,某个模拟运行的构建和执行时间如下所示:
/Ob0: Build: 18s Exec 42s (disabled)
/Ob1 or /Ob2: Build: 10m30s Exec 0.9s (only __inline, any suitable)
也就是说,内联扩展的激活使代码 x45 更快,但构建时间变得 x35 更长。
在激活任何内联函数扩展选项时,为什么链接变得如此缓慢,是否有任何明确的解释?我猜 Eigen 充满了内联函数,这使得 obj 文件更大且链接速度更慢,但在我看来差异很大。
最重要的是:有什么方法可以减少激活此选项的链接时间?
提前致谢。
解决方案
推荐阅读
- asp.net - 使用自动身份验证将登录用户重定向到新网站?
- docker - docker compose 中的 Corda 节点健康检查
- python - 发生异常时如何跳过for循环中的迭代Python
- line - 是否可以在同一行的 2 个输出之间接受用户输入
- docker - 多阶段构建只是加载最后一部分?
- office365 - 如果用户必须使用辅助服务凭据登录,我们是否允许将 Excel JS 加载项发布到 Microsoft App Source?
- symfony - 全局覆盖控制台样式的最简洁方法
- java - Android ImageButton 在小屏幕尺寸下调整大小
- junit5 - pact-jvm-provider - JUnit5 Spring - 无法添加授权标头
- python - Python psycopg2 SELECT 返回无