private static IEnumerable <Pessoa> comparar_lista_yield() { long elapsedMilliseconds = 0; long elapsedTicks = 0; SimpleFunctions.MeasurePerformance( delegate() { var lista = obter_lista(); }, ref elapsedMilliseconds, ref elapsedTicks); Console.WriteLine($"Runtime: {elapsedMilliseconds} Ticks: {elapsedTicks} (adiciona na lista)"); /******************************************/ SimpleFunctions.MeasurePerformance( delegate() { var lista_yield = obter_lista_yield(); }, ref elapsedMilliseconds, ref elapsedTicks); Console.WriteLine($"Runtime: {elapsedMilliseconds} Ticks: {elapsedTicks} (yield)"); /******************************************/ return(obter_lista_yield()); }
public void MeasurePerformance_IsCorrect() { long elapsedMilliseconds = 0; long elapsedTicks = 0; SimpleFunctions.MeasurePerformance( delegate() { Thread.Sleep(1); }, ref elapsedMilliseconds, ref elapsedTicks); Assert.Positive(elapsedMilliseconds); Assert.Positive(elapsedTicks); }
private static void comparar_foreach_comum_foreach_variavel(List <Pessoa> lista) { string nome = string.Empty; /**************************************/ long elapsedMilliseconds = 0; long elapsedTicks = 0; SimpleFunctions.MeasurePerformance( delegate() { lista.ForEach((Pessoa pessoa) => { nome = pessoa.Nome; }); }, ref elapsedMilliseconds, ref elapsedTicks); Console.WriteLine($"Runtime: {elapsedMilliseconds} Ticks: {elapsedTicks} (lista.ForEach)"); /**************************************/ SimpleFunctions.MeasurePerformance( delegate() { foreach (Pessoa pessoa in lista) { nome = pessoa.Nome; } }, ref elapsedMilliseconds, ref elapsedTicks); Console.WriteLine($"Runtime: {elapsedMilliseconds} Ticks: {elapsedTicks} (foreach)"); /**************************************/ SimpleFunctions.MeasurePerformance( delegate() { Parallel.ForEach(lista, (pessoa) => { nome = pessoa.Nome; }); }, ref elapsedMilliseconds, ref elapsedTicks); Console.WriteLine($"Runtime: {elapsedMilliseconds} Ticks: {elapsedTicks} (Parallel.ForEach)"); }