

# SUS03-BP03 Otimizar áreas de código que consomem mais tempo ou recursos
<a name="sus_sus_software_a4"></a>

Otimize o código que é executado em diferentes componentes de sua arquitetura para minimizar o uso de recursos e, ao mesmo tempo, maximizar a performance.

 **Práticas comuns que devem ser evitadas:** 
+  Você ignora a otimização de seu código para uso de recursos. 
+  Normalmente, você responde a problemas de performance aumentando os recursos. 
+  Seu processo de revisão e desenvolvimento de código não monitora alterações na performance. 

 **Benefícios de implementar esta prática recomendada:** o uso eficiente de código minimiza o uso de recursos e melhora a performance. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Médio 

## Orientação para implementação
<a name="implementation-guidance"></a>

 É essencial examinar toda área funcional, incluindo o código referente a uma aplicação projetada para a nuvem, para otimizar o uso de recursos e a performance. Monitore continuamente a performance da workload em ambientes de compilação e na produção e identifique oportunidades para melhorar os trechos cujo uso de recursos é particularmente alto. Adote um processo de revisão regular para identificar erros ou antipadrões dentro do código que usa os recursos ineficazmente. Utilize algoritmos simples e eficientes que produzem os mesmos resultados para seu caso de uso. 

## Etapas de implementação
<a name="implementation-steps"></a>
+ **Use uma linguagem de programação eficiente:** use um sistema operacional e uma linguagem de programação eficientes para a workload. Para obter detalhes sobre linguagens de programação com eficiência energética (incluindo Rust), consulte [Sustentabilidade com o Rust](https://aws.amazon.com/blogs/opensource/sustainability-with-rust/). 
+  **Use um companheiro de codificação de IA:** considere usar um companheiro de codificação de IA, como o [Amazon Q Developer](https://aws.amazon.com/q/developer/), para escrever código com eficiência. 
+ **Automatize as revisões de código:** ao desenvolver suas workloads, adote um processo de revisão de código automatizado para melhorar a qualidade e identificar erros e práticas não recomendadas. 
  + [Automatize as revisões de código com o Amazon CodeGuru Reviewer](https://aws.amazon.com/blogs/devops/automate-code-reviews-with-amazon-codeguru-reviewer/)
  + [Detectar bugs de simultaneidade com o Amazon CodeGuru](https://aws.amazon.com/blogs/devops/detecting-concurrency-bugs-with-amazon-codeguru/)
  + [Melhorar a qualidade do código para aplicações Python com o Amazon CodeGuru](https://aws.amazon.com/blogs/devops/raising-code-quality-for-python-applications-using-amazon-codeguru/)
+ **Use um criador de perfil de código:** use um criador de perfil de código para identificar as áreas de código que gastam mais tempo ou usam mais recursos e as defina como alvos de otimização. 
  + [Reduzir a pegada de carbono de sua organização com o Amazon CodeGuru Profiler](https://aws.amazon.com/blogs/devops/reducing-your-organizations-carbon-footprint-with-codeguru-profiler/)
  + [Conceitos básicos do uso de memória em sua aplicação Java com o Amazon CodeGuru Profiler](https://aws.amazon.com/blogs/devops/understanding-memory-usage-in-your-java-application-with-amazon-codeguru-profiler/)
  + [Melhorar a experiência do cliente e reduzir os custos com o Amazon CodeGuru Profiler](https://aws.amazon.com/blogs/devops/improving-customer-experience-and-reducing-cost-with-codeguru-profiler/)
+  **Monitore e otimize:** use recursos de monitoramento contínuo para identificar componentes com altos requisitos de recursos ou configuração abaixo do ideal. 
  +  Substitua os algoritmos com uso intenso de computação por uma versão mais simples e mais eficiente que produza o mesmo resultado. 
  +  Remova códigos desnecessários, como classificações e formatações. 
+  **Use refatoração ou transformação de código:** explore a possibilidade da [transformação de código do Amazon Q](https://aws.amazon.com/q/aws/code-transformation/) para manutenção e atualizações de aplicações. 
  + [Atualizar as versões de idioma com o Amazon Q Code Transformation](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/code-transformation.html)
  + [AWS re:Invent 2023: Automatizar as atualizações e a manutenção de aplicações usando o Amazon Q Code Transformation](https://www.youtube.com/watch?v=LY76tak6Z1E)

## Recursos
<a name="resources"></a>

 **Documentos relacionados:** 
+  [O que é o Amazon CodeGuru Profiler?](https://docs.aws.amazon.com/codeguru/latest/profiler-ug/what-is-codeguru-profiler.html) 
+  [Instâncias FPGA](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/fpga-getting-started.html) 
+  [Os AWS SDKs em Ferramentas para desenvolver na AWS](https://aws.amazon.com/tools/) 

 **Vídeos relacionados:** 
+ [Melhorar a eficiência do código usando o Amazon CodeGuru Profiler](https://www.youtube.com/watch?v=1pU4VddsBRw)
+ [ Automatizar revisões de código e recomendações de performance de aplicações com o Amazon CodeGuru ](https://www.youtube.com/watch?v=OD8H63C0E0I)