

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

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

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

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

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

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

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

## 實作步驟
<a name="implementation-steps"></a>
+  在擬定工作負載時採用自動化程式碼審查程序，以改善品質並識別錯誤和反模式。 
  + [ 使用 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/)
+  使用針對工作負載最高效率的作業系統和程式設計語言。如需關於高能效程式設計語言 (包括 Rust) 的詳細資料，請參閱 [Rust 的永續性](https://aws.amazon.com/blogs/opensource/sustainability-with-rust/)。 
+  將需要大量運算資源的演算法取代為會產生相同結果、但更簡單有效率的版本。 
+  移除不必要程式碼，例如排序和格式化。 

## 資源
<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)