Fala pessoal, tudo certo?

Alguém saberia me dizer qual a diferença entre os tipos int, uint e long em C#? Vocês logo responderiam que int vai de –2.147.483.648 até 2.147.483.647, uint de 0 até 4.294.967.295 e long de –9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. Logo percebe-se que o tipo int assume valores positivos e negativos, o tipo unit apenas positivos e o long valores positivos e negativos exageradamente grandes em módulo.

Certo, mas considerando que na minha aplicação eu sei que o maior número será 1 bilhão por exemplo, existiria alguma diferença além do tamanho de memória utilizado por cada tipo? Claro que… SIM! Engana-se quem pensa que a diferença esta apenas no tamanho.

Os tipos int e uint são são mais rápidos que qualquer outro tipo de variável inteira. O mesmo acontece com o tipo Double para valores reais. Sempre que precisar de contadores ou valores acessados constantemente, dê preferência para estes tipos.

A diferença de desempenho entre os tipos int e long executando a mesma tarefa com os mesmos números pode ser de 500%, 6.8593750s contra 34.3437500s. Sempre que puder prefira o tipo int. Não acredita? Veja a imagem.

 

Comparação entre int e long. Clique na imagem para ampliar.

O teste foi realizado em um PC equipado com processador Intel Core 2 Quad Q6600 2.4GHz, 4GB DDR2-800MHz e Windows XP SP3.

Mas lembre-se, não saia colocando os tipos int, uint e long por todo o código, use com sabedoria.

Até a próxima!

Trecho de código utilizado no teste:

int int_soma = 0;
long long_soma = 0;
DateTime hora_inicio;

hora_inicio = DateTime.Now;
for (int i = 0; i < int.MaxValue; i++)
{
    int_soma += i / 2;
}
Console.WriteLine("Tempo para executar usando tipo ‘int’ : {0}", DateTime.Now – hora_inicio);

hora_inicio = DateTime.Now;
for (long i = 0; i < int.MaxValue; i++)
{
    long_soma += i / 2;
}
Console.WriteLine("Tempo para executar usando tipo ‘long’: {0}", DateTime.Now – hora_inicio);

Console.Write("\nhttp://rafaeloliveirav.spaces.live.com");
Console.ReadKey();

Rafael Oliveira Vasconcelos

Tags: Desempenho, Velocidade, Otimização, C#, Visual Studio, Programação, Variável, Tipo