Tag Archives: MEMBROS

#01 – C# – Performance – Dados a membros

Performance #1 : Atribuir dados a membros de uma classe

Saga :: M&M (Mundo Mobile) 

A Saga C# e a performance. Vamos lá:

Pessoa.cs

Aqui temos a definição da classe Pessoa:

namespace AtribuirMembrosClasses
{
    public class Pessoa
    {
        public static string Nome { get; set; }
        public static string Mail;
    }
}

Nada demais, apenas uma classe que possui uma propriedade Nome e um membro Mail, ambos definidos como estáticos.

No Main

Agora só resta utilizar esses membros:

using System;
using System.Diagnostics;

namespace AtribuicaoMembrosClasses
{
    class Program
    {
        static void Main(string[] args)
        {
            Stopwatch st = new Stopwatch();
            st.Start();
            for (int i = 0; i < 400; i++) { Pessoa.Nome = "Aldo"; } st.Stop(); Console.WriteLine("usando Property: -> tempo gasto : " + st.ElapsedTicks);
            st.Restart();
            for (int i = 0; i < 400; i++) { Pessoa.Mail = "C#"; } st.Stop(); Console.WriteLine("Usando Atribuição Direta (Membro) : -> tempo gasto : " + st.ElapsedTicks);
            Console.ReadLine(); 
        }
    }
}

Aqui estou atribuindo valores à classe Pessoa:

  • Usando a propriedade Nome
  • Usando o membro Mail

Agora a pergunta. Qual a forma mais rápida?

Observações

Veja alguns pontos importantes:

Note que atribuir valores via propriedade é bem lento.

cs_performance_dadosmembros

Se preferir utilizar instâncias das classes e não definir os membros da classe como estáticos, usar a propriedade será ainda mais lento.

Ok! Sobre o ATRIBUIR MEMBROS CLASSES é tudo o que eu tenho a dizer.