Я занимаюсь разработкой CIL, которая добавляет CIL ко всем методам сборки (другими словами, множеству методов). Каждый метод проверяет, является ли конкретное значение нулевым. Пример (C# Reflector'd версия CIL кода):Фактическая производительность полей по сравнению с свойствами
// CIL woven region start
if (MyType.Something == null) {
// ... some new stuff
}
// CIL woven region end
Что такое влияние на производительность, имеющий MyType.Something как свойство против полем? Я знаю, что я прочитал, что компилятор C# выполняет специальные оптимизации, и в этом случае не должно быть никакого влияния на производительность ... но как насчет в случае прямого кода CIL (нет компилятора C#) ...? Или это JIT-компилятор, который позволяет использовать эти оптимизации (так что по-прежнему имеет преимущество CIL-код)?
Излучает OpCode.Call для аксессуаров статического свойства, имеет более низкую производительность, чем Ldsfld (помните, что это связано с десятками тысяч вызовов, поскольку каждый метод сборки сплетен)?
Спасибо.
Не могли бы вы объяснить, почему вы решили реализовать это? – Andrey 2010-12-06 17:55:37
Реализовать что? – Jeff 2010-12-06 18:00:25