Avançar para o conteúdo principal

CSharp - Melhoria no código para performance

CSharp - Melhoria no código para performance

Trago um exercício bastante simples que demonstra como escrever código de duas maneiras, ambas funcionam, mas com resultados de tempo de execução bem diferentes.


Este exercício está feito em CSharp mas poderia ser em qualquer outra linguagem.

Como exercício para demonstrar o problema, primeiro preenchemos um array com 100 000 000 de valores

sendo o primeiro 1; o segundo 2; ....

Depois a parte diferenciadora é ler o tamanho do array uma vez e armazenar esse valor, ou ler o tamanho em cada ciclo. Esta "optimização" não é grande coisa mas serve para ilustrar o problema, e alertar para algum esquecimento destas questões.

Na linha 25 temos esta operação a funcionar:



A performance depois de compilado é:
                                                                Elapsed time: 581,5329 ms


Agora lendo uma vez a dimensão do array:


A performance é:
                                                    Elapsed time: 460,1204 ms


São pequenas diferenças num código relativamente simples, para servir de exemplo.

Estou a usar um computador bastante fraco, com linux, e o Mono.
Para formatar o código no Visual Studio... usei o site:
https://codebeautify.org/csharpviewer?utm_content=cmp-true




Comentários

Mensagens populares deste blogue

C# - Viadutos Excel - ISPOL

C# - Viadutos Excel - ISPOL Ler dados do Excel e passar a informação para o ISPOL é um ganho de produtividade e organização. Desta vez, apresento uma utilidade que lê um ficheiro Excel, e transforma os dados para o menu de estruturas do ISPOL. Partindo de um Excel organizado, por pks eixos e espessuras da estrutura etc... como o seguinte: Elaborei um programita em CSharp: Este programa funciona em modo "DOS" não tem uma interface gráfica de janelas: O programa cria os ficheiros necessários, o Excel pode estar organizado por eixos, e o programa guarda um ficheiro para cada eixo: O resultado depois de abrir o ficheiro em ISPOL é o seguinte: Com as alterações ao projecto pode-se manter um ficheiro de apresentação e controlo em Excel.

Politica de privacidade das aplicações colocadas na Play Store do Google

Politica de privacidade das aplicações colocadas na Play Store do Google. As aplicações não recolhem qualquer dado do utilizador nem a armazenam ou partilham com terceiros. Não recolhem a localização nem a armazenam ou partilham com terceiros. Alguma informação sobre os utilizadores que possa chegar ao programador por via da Play Store, será tratada de acordo com toda a confidencialidade, e não fornecida a terceiros. Obrigado.

ISPOL CAD CSharp - Fila de estratigrafia nos perfis longitudinais

ISPOL CAD CSharp - Fila de estratigrafia nos perfis longitudinais No corrente exercício, foi necessário agilizar o desenho do texto das camadas nos perfis. fonte : https://www.youtube.com/watch?v=PBEX1SFv8hk O modo de apresentação dos perfis quilométricos para a SCiT assim o requere. O trabalho de copiar a informação da tabela de geotécnia de Curva Masa para o desenho, se feito de forma manual consome bastante tempo. E como estas tabelas costumam sofrer alterações ao longo do projecto é um ponto a favor de alguma programação. Esta poderia ser apenas a transformação de dados do Excel para o ISPOL. O objectivo final é transformar a tabela acima, numa informação gráfica como o exemplo genérico seguinte: No menu de Tablas de Textos do ISPOL, encontrei uma limitação de número de caracteres, o que impede a copia directa de informação do Excel para o ISPOL. Assim pensei em adicionar algo mais ao planeado na programação. No ISPOL coloca-se um marcador para cada intervalo, que depois em CAD se