Производительность вызова делегатов против методов

После этого вопроса -Передать метод в качестве параметра, используя C # и некоторые из моего личного опыта я хотел бы узнать немного больше о производительности вызова делегата по сравнению с простым вызовом метода в C #.

Хотя делегаты чрезвычайно удобны, у меня было приложение, которое выполняло множество обратных вызовов через делегатов, и когда мы переписали это для использования интерфейсов обратного вызова, мы получили увеличение скорости на порядок. Это было с .NET 2.0, поэтому я не уверен, как все изменилось с 3 и 4.

Как обрабатываются вызовы для делегатов внутри компилятора / CLR и как это влияет на производительность вызовов методов?

РЕДАКТИРОВАТЬ - Чтобы уточнить, что я имею в виду под делегатами против интерфейсов обратного вызова.

Для асинхронных вызовов мой класс может предоставить событие OnComplete и связанный с ним делегат, на который может подписаться вызывающая сторона.

В качестве альтернативы я мог бы создать интерфейс ICallback с методом OnComplete, который реализует вызывающая сторона, а затем регистрируется в классе, который затем будет вызывать этот метод по завершении (то есть способ, которым Java обрабатывает эти вещи).

Ответы на вопрос(6)

Ваш ответ на вопрос