

# SUS03-BP03 Ottimizzazione delle aree di codice che consumano la maggior parte del tempo o delle risorse
<a name="sus_sus_software_a4"></a>

Ottimizza il codice eseguito all'interno di diversi componenti della tua architettura per ridurre l'utilizzo delle risorse e massimizzare al tempo stesso le prestazioni.

 **Anti-pattern comuni:** 
+  Ignori l'ottimizzazione del codice per l'utilizzo delle risorse. 
+  In genere, rispondi ai problemi di performance aumentando le risorse. 
+  La revisione del codice e il processo di sviluppo non monitorano le modifiche a livello di performance. 

 **Vantaggi dell'adozione di questa best practice:** riduzione al minimo delle risorse utilizzate e ottimizzazione delle prestazioni grazie all'utilizzo di codice efficiente. 

 **Livello di rischio associato se questa best practice non fosse adottata:** medio 

## Guida all’implementazione
<a name="implementation-guidance"></a>

 È fondamentale esaminare ogni area funzionale, incluso il codice per un'applicazione ideata nel cloud, per ottimizzare l'uso delle risorse e le performance. Monitora costantemente le performance del tuo carico di lavoro negli ambienti di sviluppo e produzione e identifica le opportunità per migliorare gli snippet di codice che comportano un utilizzo particolarmente elevato delle risorse. Adotta un processo di revisione con cadenza regolare per identificare i bug o gli anti-pattern all'interno del codice che utilizzano le risorse in modo non efficiente. Sfrutta algoritmi semplici ed efficienti che hanno gli stessi risultati per il tuo caso d'uso. 

## Passaggi dell'implementazione
<a name="implementation-steps"></a>
+ **Utilizza un linguaggio di programmazione efficiente:** usa un sistema operativo e un linguaggio di programmazione efficienti per il carico di lavoro. Per dettagli sui linguaggi di programmazione efficienti dal punto di vista delle risorse (incluso Rust), consulta [Sustainability with Rust](https://aws.amazon.com/blogs/opensource/sustainability-with-rust/). 
+  **Usa un assistente per la scrittura di codice basato sull'IA:** valuta la possibilità di utilizzare un assistente per la scrittura di codice basato sull'IA, come [Amazon Q Developer](https://aws.amazon.com/q/developer/), per una scrittura efficiente del codice. 
+ **Automatizza le revisioni del codice:** mentre sviluppi i tuoi carichi di lavoro, adotta un processo di revisione del codice automatizzato, per migliorar la qualità e identificare bug e anti-pattern. 
  + [ Automate code reviews with Amazon CodeGuru Reviewer ](https://aws.amazon.com/blogs/devops/automate-code-reviews-with-amazon-codeguru-reviewer/)
  + [ Detecting concurrency bugs with Amazon CodeGuru ](https://aws.amazon.com/blogs/devops/detecting-concurrency-bugs-with-amazon-codeguru/)
  + [ Raising code quality for Python applications using Amazon CodeGuru ](https://aws.amazon.com/blogs/devops/raising-code-quality-for-python-applications-using-amazon-codeguru/)
+ **Usa un profiler di codice:** utilizza un profiler di codice per identificare le aree di codice che utilizzano la maggior parte del tempo o delle risorse e trasformale in obiettivi di ottimizzazione. 
  + [ Reducing your organization's carbon footprint with Amazon CodeGuru Profiler ](https://aws.amazon.com/blogs/devops/reducing-your-organizations-carbon-footprint-with-codeguru-profiler/)
  + [ Understanding memory usage in your Java application with Amazon CodeGuru Profiler ](https://aws.amazon.com/blogs/devops/understanding-memory-usage-in-your-java-application-with-amazon-codeguru-profiler/)
  + [ Improving customer experience and reducing cost with Amazon CodeGuru Profiler ](https://aws.amazon.com/blogs/devops/improving-customer-experience-and-reducing-cost-with-codeguru-profiler/)
+  **Monitora e ottimizza:** utilizza risorse di monitoraggio continuo per individuare i componenti con requisiti elevati in termini di risorse o con una configurazione non ottimale. 
  +  Sostituisci gli algoritmi a uso intensivo di elaborazioni con una versione più semplice ed efficiente che produce gli stessi risultati. 
  +  Rimuovi il codice non necessario, come quello relativo all'ordinamento e alla formattazione. 
+  **Usa la rifattorizzazione o la trasformazione del codice:** scopri le funzionalità di [trasformazione del codice Amazon Q](https://aws.amazon.com/q/aws/code-transformation/) per l'esecuzione di manutenzione e aggiornamenti delle applicazioni. 
  + [ Upgrade language versions with Amazon Q Code Transformation ](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/code-transformation.html)
  + [AWS re:Invent 2023 - Automate app upgrades & maintenance using Amazon Q Code Transformation ](https://www.youtube.com/watch?v=LY76tak6Z1E)

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

 **Documenti correlati:** 
+  [What is Amazon CodeGuru Profiler?](https://docs.aws.amazon.com/codeguru/latest/profiler-ug/what-is-codeguru-profiler.html) 
+  [Istanze FPGA](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/fpga-getting-started.html) 
+  [SDK AWS su Strumenti per creare su AWS](https://aws.amazon.com/tools/) 

 **Video correlati:** 
+ [ Improve Code Efficiency Using Amazon CodeGuru Profiler ](https://www.youtube.com/watch?v=1pU4VddsBRw)
+ [ Automate Code Reviews and Application Performance Recommendations with Amazon CodeGuru ](https://www.youtube.com/watch?v=OD8H63C0E0I)