我常常搞混這兩個東西,我每次考 GCP 證照都會弄錯,真的好幾十次,所以特別寫下來,防止再次搞混。
官網 Cloud Profiler 介紹:
Cloud Profiler 可持續分析在應用程式執行時,那些占用大量 CPU 運算資源或記憶體的函式效能,並據此改善問題。
Cloud Profiler 會以互動式火焰圖呈現相關函式的呼叫階層與資源耗用情形,協助開發人員瞭解哪些路徑使用最多資源,以及程式碼的各種實際呼叫方式。
https://cloud.google.com/profiler?hl=zh-tw
官網 Cloud Trace 介紹:
收集應用程式的 Latency 資料,並且即時呈現。
Cloud Trace 專門用於分散式追蹤,能夠追蹤和分析服務之間的請求 Latency,特別適合微服務架構中的效能監控。
https://cloud.google.com/trace/docs
Cloud Profiler vs Cloud Trace 比較表
比較面向 | Cloud Profiler | Cloud Trace |
---|---|---|
主要用途 | CPU 和記憶體使用情況分析 | 分贿式系統的 Request 追蹤 |
監控重點 | – CPU 使用率 | – 服務間的 Request Latency |
– 記憶體分配 | – 請求路徑追蹤 | |
– 程式碼熱點 (Hot Spots) | – 服務依賴關係 | |
– 函數執行時間 | – 端到端 Latency 分析 | |
使用場景 | – 效能優化 | – 微服務架構監控 |
– 資源使用分析 | – API 延遲分析 | |
– 程式碼效率提升 | – 服務依賴診斷 | |
– 記憶體洩漏檢測 | – 系統瓶頸識別 | |
收集數據類型 | – CPU profiles | – 請求延遲 |
– Heap profiles | – 請求路徑 | |
– Wall-time profiles | – HTTP headers | |
– Contention profiles | – RPC 調用信息 | |
支援語言 | – Java | – Java |
– Go | – Go | |
– Node.js | – Node.js | |
– Python | – Python | |
– C++ | – PHP | |
– .NET | – Ruby | |
視覺化方式 | – 火焰圖 (Flame Graphs) | – 分布式追蹤圖 |
– 調用樹 | – 瀑布圖 | |
– 熱點圖 | – 延遲分佈圖 | |
性能影響 | 較低,通常 < 5% | 極低,通常 < 1% |
適用開發階段 | – 開發環境 | – 所有環境 |
– 測試環境 | – 特別適合生產環境 | |
– 生產環境 | ||
整合性 | 與 Cloud Console 整合 | 與 Cloud Console 和 Cloud Monitoring 整合 |
主要優勢 | – 深入的程式碼級分析 | – 分布式系統可視化 |
– 資源使用優化 | – 端到端監控 | |
– 性能瓶頸識別 | – 系統依賴分析 |