Sobes.tech
Middle

Como se pode determinar a alteração no desempenho de um programa após fazer alterações nele?

sobes.tech IA

Resposta da IA

Para determinar as alterações de desempenho, utilizam-se as seguintes abordagens:

  • Profiling: Uso de ferramentas como o Android Profiler no Android Studio para monitorizar o consumo de CPU, memória, rede e energia. Isto permite identificar gargalos no código.

    // Exemplo de medição simples do tempo de execução de um bloco de código
    val startTime = System.nanoTime()
    // Código cujo desempenho se deseja medir
    val endTime = System.nanoTime()
    val duration = endTime - startTime // Diferença em nanosegundos
    
  • Benchmarking: Criação de cenários de teste que medem o tempo de execução de operações ou secções específicas do código num ambiente controlado.

  • Métricas de desempenho: Acompanhamento de indicadores-chave em utilizadores reais ou dispositivos de teste:

    • Tempo de arranque da aplicação (App Startup Time)
    • Frequência de quadros (Frames per Second - FPS)
    • Uso de memória (Memory Usage)
    • Consumo de bateria (Battery Consumption)
    • Uso de tráfego (Network Usage)
  • Testes automatizados: Escrita de testes que incluem verificações de desempenho, executados numa pipeline CI/CD. Isto permite acompanhar as alterações ao longo do tempo.

  • Testes A/B: Comparação do desempenho de duas versões do programa em diferentes grupos de utilizadores.

  • Ferramentas de monitorização de utilizadores reais (RUM): Uso de serviços como Firebase Performance Monitoring, New Relic, Sentry para recolher dados de desempenho nos dispositivos dos utilizadores.

Ao comparar estes dados antes e depois das alterações, é possível tirar conclusões sobre o impacto das mudanças no desempenho.