示例#1
0
        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());
        }
示例#2
0
        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);
        }
示例#3
0
        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)");
        }