modelica - 如何在 Visual Studio 编译器的 Dymola 2019 FD01 中使用编译器标志

标签 modelica dymola

我正在探索利用编译器标志来提高 Dymola 2019 FD01 中编译代码的速度。我一开始是:

Advanced.Define.GlobalOptimizations=2;

相当于/Og,模型速度提高了 100%!

我正在研究如何使用下面所示的“自定义选项”组为 Visual Studio 设置一些其他标志,但它们似乎没有做任何事情。我什至尝试了“Visual Studio Custom”选项以及标志,模型速度与未优化的代码相同。在编译器部分中设置/Og 似乎与 GlobalOptimizations 标志的作用不同。

如果有人能够阐明在 Dymola 中设置编译器标志的正确方法,我将不胜感激。

Simulation Setup - Compiler Tab

最佳答案

默认的 Advanced.Define.GlobalOptimizations=0; 会关闭全局优化 - 这就是为什么您需要设置 Advanced.Define.GlobalOptimizations=2; 或启用它使用自定义选项并设置 Advanced.Define.GlobalOptimizations=1;

全局优化的缺点是编译时间可能会大幅增加,这解释了为什么它默认关闭。

链接时代码生成(编译器选项 /GL 和链接器选项 /LTCG)实际上对 dymosim 没有任何影响,因为整个模型代码都在一个代码中模块 - 因此已经可供优化器使用。 (由于编译器的限制,有多个模块用于其他用途。)

关于modelica - 如何在 Visual Studio 编译器的 Dymola 2019 FD01 中使用编译器标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56402210/

相关文章:

python - 使用 PyFMI 进行灵敏度分析 - for-loop 中的 FMU

debugging - Modelica 条件打印(用于调试)

dymola - Modelica Dymola : How to change component parameters during state graph simulation?

python - FMU 模块和方法 get_author()

modelica - 如何启用 modelica 单元一致性检查

attributes - 为什么 Dymola/Modelica 中的属性 min、max 不起作用?

modelica - 如何追踪 Dymola 中用于计算管道质量的参数和方程?

modelica - 具有模式相关参数的重复组件

modelica - 如何处理 Dymola 中的大型矩阵?