В следующей версии программной платформы Microsoft .Net, .Net Core 2.0, механизм профильной оптимизации кода (profile-guided optimization, PGO) будет реализован в варианте для 64-разрядных дистрибутивов Linux.
Технология PGO позволяет ускорить выполнение за счет двухэтапной процедуры оптимизации, в рамках которой сначала происходит запуск программы и сбор информации о характеристиках выполнения, а потом соответствующая коррекция различных параметров и повторная сборка с новыми настройками. Изначально PGO появилась в .Net Framework, а впоследствии была реализована в .Net Core 1.1 для Windows x64.
В Microsoft отмечают, что из-за фрагментации экосистемы Linux, в частности, из-за различий в инструментальных цепочках компиляции, поставляемых с различными дистрибутивами, реализовать PGO для ОС с открытым кодом было непросто. В корпорации преодолели сложности, создав универсальный вариант .Net для Linux, встраиваемый в установщики различных дистрибутивов.
Сейчас .Net Core 2.0 находится на стадии ознакомительной версии. Технология PGO применяется для элементов среды выполнения и в период JIT-компиляции, и пользователям .Net Core не нужно принимать специальные меры, чтобы задействовать оптимизатор, — он используется автоматически.