27 de out. de 2009

Compreendendo um Release

Após a finalização do desenvolvimento de um app , ou a finalização de um ciclo de desenvolvimento, a aplicação tem de ser distribuída.

A distribuição pode ser feita de várias maneira como web, installer ou ClickOnce e é necessário preparar um build.

Quando se prepara um build da sua aplicação, devemos nos atentar em alguns detalhes para distribuir uma aplicação winforms...

Debug ou Release:

image

Release! Por que!? Simples, o Release é uma compilação totalmente otimizada e não contêm nenhuma informação dos símbolos para debug. Isto torna o software mais leve e muito mais rápido.

O Debug por sua vez é uma versão da aplicação que é compilada com a informação completa dos símbolos para debug e não é realizada nenhuma otimização. A otimização dificulta o debug, já que a relação entre o código fonte e as instruções geradas são mais complexas. Por não ter a otimização o programa se torna mais lento e perceptivelmente maior (em um a solução de porte razoável observe a diferênça dos tamnhos de arquivos gerados).  

Vale nos atentar que ambas as distribuições ficam em suas respectivas pastas dentro do diretório Bin do projeto principal (pastas Release e Debug).

Além de uma limpa do código e das anotações de debug, aqui vai um exemplo de otimização que estava exlorando no mestrado:

void FuncaoA()
{
    int a = 10;
    int b = 0;

    for (int i = 0; i < 10; i++)
    {
        int c = FuncaoB(a);
        b = i + c;
    }
}

Ao debugar, podemos colocar um ponto de debug na chamada da FuncaoB() e entrar na mesma. Logo o compilador não pode comprometer este código. Mas ao deixar o compilador otimizar, uma das estratégias que o proprio compilador poderia adotar seria a distribuição das constante e tirar as funções de loops, des de que as mesmas só causem processamento repetido e desnecessário, sem afetar o comportamento da aplicação veja:

void FuncaoA()
{
    int a = FuncaoB(10);
    int b = 0;

    for (int i = 0; i < 10; i++)
    {
        b = i + a;
    }
}

Espero ser de grande ajuda!

T+

2 comentários:

Anônimo disse...

I think this iѕ аmong the moѕt signіficаnt info fοг me.
And i'm glad reading your article. But want to observation on few general issues, The site style is ideal, the articles is actually excellent : D. Excellent job, cheers

my website; payday loans

Anônimo disse...

http://prixviagrageneriquefrance.net/ acheter viagra
http://commanderviagragenerique.net/ viagra commander
http://viagracomprargenericoespana.net/ generico viagra
http://acquistareviagragenericoitalia.net/ acquistare viagra