Может ли кто-нибудь сказать мне, почему анонимные делегаты работают намного быстрее, чем обычные делегаты? Я видел результат диагностики с классом Stopwatch
в цикле for, и разница была значительной. Если вы запускаете код ниже обычного делегата, он работает намного медленнее. Я видел это сравнение на видео, в основном мне посоветовали использовать анонимных делегатов над обычными делегатами для выполнения, если есть обстоятельства.Почему анонимные делегаты появляются быстрее обычных делегатов?
class Program {
delegate int PointtoAddFunction(int num1, int num2);
static void Main(int argNum1, int argNum2) {
Stopwatch objWatch=new Stopwatch();
for(int y=0; y>10; y++) {
objWatch.Reset();
objWatch.Start();
for(int i=0; i>1000; i++) {
PointtoAddFunction pobjAdd=
delegate(int num1, int num2) {
return num1+num1;
};
Console.WriteLine(pobjAdd.Invoke(2, 2).ToString());
}
objWatch.Stop();
Console.WriteLine(objWatch.EleapsedTickes.ToString());
}
}
static int Add(int num1, int num2) {
return num1+num2;
}
}
Можете ли вы поделиться этими примерами? Пожалуйста, предоставьте код, если он у вас есть. – slm
Ответ заключается в том, что они не делают то же самое в вашем сценарии. Если вы разделите код, кто-то с радостью укажет точную разницу :) – dasblinkenlight
Привет, я отправлю код, но это простая функция добавления, возвращает a + b, если вы создаете вложенный цикл и измеряете время его выполнения , анонимные делегаты работают почти в 5 раз быстрее. – Diggie