Как использовать флаги компилятора в Dymola 2019 FD01 для компилятора Visual Studio

Я изучаю возможность использования флагов компилятора для повышения скорости скомпилированного кода в Dymola 2019 FD01. Я начал с:

Advanced.Define.GlobalOptimizations=2;

что эквивалентно / Og и улучшило скорость модели на 100%!

Я искал, как я могу установить некоторые другие флаги для Visual Studio, используя группу «Пользовательские параметры», показанную ниже, но они, похоже, ничего не делают. Я даже попробовал опцию «Visual Studio Custom» вместе с флагами, и скорость модели такая же, как и у неоптимизированного кода. Установка / Og в разделе компилятора, похоже, не делает то же самое, что флаг GlobalOptimizations.

Я был бы признателен, если бы кто-нибудь мог пролить свет на правильный способ установки флагов компилятора в Dymola.

Настройка моделирования - вкладка


person Srikanth Sivaramakrishnan    schedule 31.05.2019    source источник


Ответы (1)


По умолчанию Advanced.Define.GlobalOptimizations=0; выключает глобальную оптимизацию - поэтому вам нужно либо установить Advanced.Define.GlobalOptimizations=2;, либо включить ее с помощью настраиваемых параметров и установить Advanced.Define.GlobalOptimizations=1;.

Обратной стороной глобальной оптимизации является то, что время компиляции может существенно увеличиться, что объясняет, почему она отключена по умолчанию.

Генерация кода во время компоновки (опция компилятора /GL и опция компоновщика /LTCG) на практике не оказывает никакого влияния на dymosim, поскольку весь код модели находится в одном модуле и, таким образом, уже доступен для оптимизатора. (Есть несколько модулей для других вещей из-за ограничений компилятора.)

person Hans Olsson    schedule 03.06.2019