В C# вы можете применить атрибут [MethodImpl(MethodImplOptions.AggressiveInlining)] к любому методу, чтобы обеспечить встраивание вызовов JIT в большинстве мест (в отличие от эвристики, распознающей короткие методы). Вопрос Когда его следует применять — спорный вопрос, но современный .NET обычно работает достаточно хорошо сам по себе, поэтому атрибут не является необходимым. (К сожалению, я застрял в работе с .NET Framework.)
Мне любопытно, влияет ли это каким-либо образом на финализаторы (деструкторы, ~TypeName() {), поскольку они могут принимать любой атрибут, применимый к AttributeTargets.Method, включая [MethodImpl]. Из документации я понял, что сборщик мусора вызывает каждую реализацию Finalize, идущую вверх по цепочке наследования классов. Подходят ли эти вызовы для встраивания? Не то чтобы я ожидал, что в этом случае это будет иметь заметное значение.
Подробнее здесь: https://stackoverflow.com/questions/791 ... ion-of-net
Влияет ли AggressiveInlining на Finalize в любой версии .NET? ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение