使用 Amazon CodeGuru 找出最昂貴的程式碼行

Amazon CodeGuru 是採用機器學習技術的開發人員工具,能針對增進程式碼的品質提供智慧型建議,並且找出應用程式之中最昂貴的程式碼行。它自動執行代碼審查並提供應用程式效能建議。

Amazon CodeGuru Profiler

Amazon CodeGuru Profiler 會一直尋求應用程式效能最佳化,識別最「昂貴」的程式碼行並建議修復方法以降低 CPU 使用率,降低運算成本,以及提升應用程式效能。例如,CodeGuru Profiler 可識別您的應用程式何時在日誌記錄常式上消耗過多的 CPU 容量,而不是執行核心業務邏輯。

了解應用程式的執行階段行為

CodeGuru Profiler 可持續分析應用程式的 CPU 使用率和延遲特徵,以向您顯示在應用程式中花費最多週期或時間的位置。此分析將在互動式火焰圖上顯示,該圖可協助您以視覺化方式輕鬆了解哪些程式碼路徑消耗最多的資源,驗證您的應用程式是否按預期執行,以及發現可進一步最佳化的區域。

CodeGuru_Profiler
CodeGuru_Profiler
 按一下以放大

火焰圖透過彙總在給定時間執行的所有堆疊追蹤資訊,視覺化呈現應用程式的效能。您可以利用火焰圖來了解哪些路徑消耗最多的資源,驗證您的應用程式是否按預期執行,以及發現可進一步最佳化的區域。例如,方法 UploadGreyImage 每年花費 134,868 USD,這消耗了 10.22% 的時鐘時間,因此,若您不希望花費這麼多時間,則應進行調查。

智慧建議

CodeGuru Profiler 會自動識別應用程式中的效能問題,並提供有關如何修復問題的智慧建議。這些建議可協助您識別和最佳化程式碼中最昂貴或占用資源最多的方法,而無須您成為效能工程專家。透過這些最佳化,您可以降低基礎架構的成本,減少延遲,以及改善最終使用者的整體體驗。

CodeGuru_Profiler-1
CodeGuru_Profiler-1
 按一下以放大

當 Amazon CodeGuru Profiler 認為有機會最佳化應用程式效能時,會說明其建議變更的理由、導致問題的原因、解決方法,以及該問題在程式碼中影響應用程式的位置。此建議顯示這行昂貴的程式碼成本為每年 182.16K USD,且花費作用中 CPU 成本的 2.97。若按照建議的解決步驟操作,您可以節省多達 182.16K USD。

異常偵測

Amazon CodeGuru Profiler 持續地即時分析您的應用程式描述檔,並偵測您的應用程式及其方法的行為異常。在建議報告中會追蹤每項異常,您可以看到該方法的延遲隨時間變化的時間序列,並反白顯示異常。若已設定,則在偵測到新異常時還將傳送 Amazon SNS 通知。

CodeGuru_AD
CodeGuru_AD
 按一下以放大
始終啟用的生產中應用程式分析

CodeGuru Profiler 的設計旨在以最小的 CPU 開銷,在生產環境中持續執行,這意味著您可以一直保持執行狀態,而對應用程式效能影響則降至最低。這讓您可以使用實際的客戶流量模式,來對應用程式進行分析和疑難排解,並輕鬆地發現測試環境中可能未偵測到的效能問題。

Amazon CodeGuru Reviewer

Amazon CodeGuru Reviewer 可找出您的程式碼存在的問題,並建議如何進行修復。例如,CodeGuru Reviewer 可偵測與使用 AWS API 和 SDK 的最佳實務的偏差,還可以識別並行問題、資源洩漏,以及不正確的輸入驗證。若要開始審查程式碼,您可以在 GitHub、GitHub Enterprise、Bitbucket 或 AWS CodeCommit 上將現有程式碼儲存庫與 CodeGuru 關聯。

自動化建議

CodeGuru Reviewer 自動分析源代碼提取請求以發現關鍵問題,並提供智慧建議,以便直接在提取請求中解決程式碼缺陷。CodeGuru Reviewer 在九大類中識別程式碼品質問題:

  • AWS 最佳實務:正確使用 AWS API (例如,輪詢、編頁)
  • Java 最佳實務:正確使用常用的 Java 語言和庫功能
  • 並行:偵測缺少的同步,導致功能不正確或過多同步,從而引起效能問題。
  • 鎖死:檢查並行執行緒之間的協調
  • 資源洩漏:正確處理資源 (例如,釋放資料庫連線)
  • 敏感資訊洩漏:個人身份資訊洩漏 (例如,記錄信用卡詳細資訊)
  • 常見的程式碼錯誤:難以發現缺陷,例如沒有針對每次 lambda 叫用建立用戶端
  • 程式碼複製:識別可以合併以提高程式碼可維護性的重複程式碼
  • 輸入驗證:檢查不受信任來源的格式錯誤或惡意資料
CodeGuru-Reviewer1
CodeGuru-Reviewer1
 按一下以放大

簡而言之,Amazon CodeGuru 為您的開發團隊提供在軟體開發過程中維護高編碼標準的工具。

客戶還可在「程式碼審查」主控台頁面 (Reviewer 部分) 中查看所有程式碼審查。此頁面會列出所有程式碼審查資訊,例如程式碼審查狀態、儲存庫及建議的數量等。使用者按一下已成功完成的程式碼審查,即可檢視詳細的建議內容、搜尋建議,以及已分析的行數。使用者也能按一下建議下方的豎起大拇指或大拇指朝下的圖示,對 CodeGuru 建議提供回饋意見。

CodeGuru-Feature-1
CodeGuru-Feature-1
 按一下以放大
CodeGuru-Feature-2
CodeGuru-Feature-2
 按一下以放大
完整儲存庫分析

客戶可以在指定的程式碼分支下,獲得所有程式碼 (不只是透過提取請求進行的遞增變更) 關聯儲存庫的自動程式碼審查建議。客戶使用案例包括在程式碼遷移、程式碼盡職調查和定期程式碼可維護性計劃期間提供程式碼審查建議。客戶可以瀏覽到「程式碼審查」頁面中的「儲存庫分析」標籤,在完整儲存庫上觸發新分析。

RepostoryAnalysis
RepostoryAnalysis

透過可用的提取請求和完整儲存庫分析,採用 Reviewer 的客戶可以 1) 將其儲存庫建立關聯、2) 啟動完整儲存庫分析、3) 使用遞增程式碼變更持續分析提取請求,以及 4) 定期重新掃描完整儲存庫以確保程式碼品質。

Product-Page_Standard-Icons_01_Product-Features_SqInk
進一步了解產品定價

瀏覽 Amazon CodeGuru 定價頁面。

進一步了解 
Product-Page_Standard-Icons_02_Sign-Up_SqInk
註冊免費帳戶

立即存取 AWS 免費方案 

註冊 
Product-Page_Standard-Icons_03_Start-Building_SqInk
開始在主控台進行建置

開始在 AWS 管理主控台使用 Amazon CodeGuru 進行建置。

登入