Существуют ли атрибуты, влияющие на то, как CLR оптимизируется во время компиляции JIT?
Как говорится в этом вопросе, мне любопытно, знает ли кто-нибудь из вас атрибуты, влияющие на то, как CLR будет компилировать/оптимизировать байт-код. Есть ли атрибут, который повлияет на принятие решений в коде? Развернуть петли?
Существуют ли недокументированные атрибуты для классов, созданных для анонимных типов/делегатов?
Вероятно, атрибуты отключают оптимизацию для целей отладки, но почему-то меня это не интересует.
Ответы
Ответ 1
Только один, который я использовал для отладки:
[MethodImpl(MethodImplOptions.NoInlining)]
Это предотвращает встраивание метода JIT. Там также:
[MethodImpl(MethodImplOptions.NoOptimization)]
Это просто мешает JIT оптимизировать что-либо, если вы обнаружили редкую ошибку в генерации кода, которая фактически вызывает проблему.