

# SUS03-BP03 最佳化程式碼中耗用最多時間或資源的區域
<a name="sus_sus_software_a4"></a>

最佳化您的架構不同元件中執行的程式碼，將資源用量降至最低，同時發揮最大效能。

 **常見的反模式：**
+  您略過資源用量的程式碼最佳化。
+  您通常藉由增加資源來回應效能問題。
+  您的程式碼審查和開發程序未追蹤效能變更。

 **建立此最佳實務的優勢：**使用有效率的程式碼可將資源用量壓到最低，並改善效能。

 **未建立此最佳實務時的曝險等級：**中 

## 實作指引
<a name="implementation-guidance"></a>

 請務必檢查各個功能領域 (包括雲端架構應用程式的程式碼)，以最佳化其資源用量和效能。持續監控您的工作負載在建置環境和生產環境中的效能，並找機會改進資源用量特別高的程式碼片段。採用定期審查程序，在您的程式碼內識別低效使用資源的錯誤或反模式。使用簡單有效的演算法為您的使用案例產生相同結果。

## 實作步驟
<a name="implementation-steps"></a>
+ **使用高效率的程式設計語言：**使用適用於工作負載的高效率作業系統和程式設計語言。如需有關高能效程式設計語言 (包括 Rust) 的詳細資訊，請參閱 [Rust 的永續性](https://aws.amazon.com/blogs/opensource/sustainability-with-rust/)。
+  **使用 AI 編碼配套：**考慮使用 AI 編碼配套 (例如 [Amazon Q Developer](https://aws.amazon.com/q/developer/)) 以有效率地撰寫程式碼。
+ **自動執行程式碼檢閱：**在擬定工作負載時採用自動化程式碼檢閱程序，以改善品質並識別錯誤和反模式。
  + [ 使用 Amazon CodeGuru Reviewer 自動進行程式碼審核](https://aws.amazon.com/blogs/devops/automate-code-reviews-with-amazon-codeguru-reviewer/)
  + [ 使用 Amazon CodeGuru 偵測並行錯誤](https://aws.amazon.com/blogs/devops/detecting-concurrency-bugs-with-amazon-codeguru/)
  + [ 使用 Amazon CodeGuru 提升 Python 應用程式的程式碼品質](https://aws.amazon.com/blogs/devops/raising-code-quality-for-python-applications-using-amazon-codeguru/)
+ **使用程式碼分析工具：**使用程式碼分析工具來識別程式碼中使用最多時間或資源的區域，作為最佳化目標。
  + [ 透過 Amazon CodeGuru Profiler 降低組織的碳足跡](https://aws.amazon.com/blogs/devops/reducing-your-organizations-carbon-footprint-with-codeguru-profiler/)
  + [ 透過 Amazon CodeGuru Profiler 了解 Java 應用程式中的記憶體用量](https://aws.amazon.com/blogs/devops/understanding-memory-usage-in-your-java-application-with-amazon-codeguru-profiler/)
  + [ 透過 Amazon CodeGuru Profiler 改善客戶體驗並降低成本](https://aws.amazon.com/blogs/devops/improving-customer-experience-and-reducing-cost-with-codeguru-profiler/)
+  **監控和最佳化：**使用持續監控資源來識別資源需求高或組態不夠好的元件。
  +  將需要大量運算資源的演算法取代為會產生相同結果、但更簡單有效率的版本。
  +  移除不必要程式碼，例如排序和格式化。
+  **使用程式碼重構或轉換：**探索用於應用程式維護和升級的 [Amazon Q 程式碼轉換](https://aws.amazon.com/q/aws/code-transformation/)的可能性。
  + [ 使用 Amazon Q 程式碼轉換升級語言版本](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/code-transformation.html)
  + [AWS re:Invent 2023 - 使用 Amazon Q 程式碼轉換自動執行應用程式升級與維護](https://www.youtube.com/watch?v=LY76tak6Z1E)

## 資源
<a name="resources"></a>

 **相關文件：**
+  [什麼是 Amazon CodeGuru Profiler？](https://docs.aws.amazon.com/codeguru/latest/profiler-ug/what-is-codeguru-profiler.html) 
+  [FPGA 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/fpga-getting-started.html) 
+  [在 AWS 上建置的工具中的 AWS SDK](https://aws.amazon.com/tools/) 

 **相關影片：**
+ [使用 Amazon CodeGuru Profiler 改善程式碼效率](https://www.youtube.com/watch?v=1pU4VddsBRw)
+ [ 使用 Amazon CodeGuru 自動執行程式碼檢閱和應用程式效能建議](https://www.youtube.com/watch?v=OD8H63C0E0I)