分析設定檔

根據 Wikipedia ,一個簡檔 "是一種動態程式分析的形式,例如,測量程式的空間 (記憶體) 或時間複雜度、特定指令的使用,或函式呼叫的頻率和持續時間"。 因此,側寫程式是為了立即或稍後分析而產生這類設定檔的程式。

在大部分情況下,開發人員會使用側寫程式來識別其程式碼中的效能問題或瓶頸。 側寫程式的設計可讓開發人員一路深入挖掘執行緩慢或資源密集的個別程式碼行。 雖然側寫可以用來識別程式碼最佳化機會,但通常只有在發生嚴重問題之後,開發人員才會在開發環境中使用它。 即使開發人員想要在正式作業中執行側寫,最多也很難存取正式作業來附加側寫程式。

Instana AutoProfile™ 會自動將自己連接至執行中處理程序,而不需要重新啟動或重新配置。 使用 AutoProfile,使用者可以持續分析程式碼層次效能、探索正式作業程式碼中的瓶頸、使用火焰圖形視覺化效能,以及深入挖掘應用程式的「熱路徑」。

若要調查設定檔,請跳至 無界限分析 視圖,然後切換至 設定檔

在正式作業中持續分析程式碼層次效能

AutoProfile 會自動且連續地設定程式碼在正式作業中執行的方式,而不需要任何配置。 AutoProfile 是設計用來揭露程式碼中的瓶頸,並報告 CPU 及競用設定檔。 CPU 設定檔可讓開發人員探索哪些方法是 CPU 密集的方法,以便他們可以有效率且精確地最佳化其程式碼。 競爭設定檔顯示哪些 synchronized 指引會導致長時間等待、CPU 多執行緒作業功能的使用效率低下,以及導致整體效能不佳。

視覺化為火焰圖形

AutoProfile 會將所有設定檔視覺化為火焰圖形,讓您可以輕鬆查看確切耗用資源的位置。 火焰圖形長條會根據耗用的資源數量來調整大小。 此外,圖形由上而下依時間順序排序。 Instana 會以寶貴的度量值 (例如 CPU 使用率及 GC 活動) 來擴增設定檔。 提供您瞭解設定檔影響所需的環境定義。

在樹狀視圖中尋找「熱路徑」

Instana 提供所有設定檔的樹狀結構視圖,只要按一下加號即可展開感興趣的區域。 這可讓您快速且輕鬆地在程式碼中找到「熱門路徑」。 例如,您可以快速按一下設定檔來展開路徑,以顯示程式碼使用總 CPU 使用率的 30% ,以便您可以改善及最佳化程式碼。

深入程式碼 (僅限 Java)

從火焰圖形或樹狀結構視圖中開啟導致問題的確切程式碼。 您可以依套件或類別名稱來過濾,以快速尋找程式碼在程式碼路徑中開始的位置。 只要按一下鏈結,即可直接深入您需要關注的程式碼行。

Instana 的 AutoProfile 完全符合 Instana 的最佳效能最佳化功能。 AutoProfile 和 Unbounded Analytics™ 為開發人員提供其指尖所需的所有資訊,以立即找出任何問題或資源競用的主要原因。 這會使應用程式和服務的效能最佳化,以提供最佳可能的客戶體驗。

設定檔類型

側寫功能在很大程度上取決於語言、執行時期和版本。 由於取樣機制和工具的實作差異,設定檔類型及其可用性在語言和執行時期之間會有所不同。 目前支援的設定檔類型在表格中彙總如下。

就結構而言,設定檔是類似的。 它們包含通常以呼叫曲線或呼叫樹狀結構表示的程式碼執行路徑,其中每個節點都有一些統計資料,例如命中數、KB 或毫秒。 程式碼路徑是方法呼叫的追蹤,類似於異常狀況堆疊追蹤。

Java 設定檔

設定檔類型 說明
CPU 使用率 CPU 設定檔顯示每個代碼路徑的 CPU 使用率。 CPU 側寫程式透過統計取樣處理程序執行來運作。
競用 競爭設定檔顯示同步化程式碼正在等待其他執行緒的位置。 等待時間的聚集是根據程式碼路徑來完成。

Node.js 設定檔

設定檔類型 說明
CPU 使用率 CPU 設定檔顯示每個代碼路徑的 CPU 使用率。 CPU 側寫程式透過統計取樣處理程序執行來運作。
非同步呼叫 非同步呼叫設定檔顯示非同步呼叫等待程式碼路徑的聚集視圖,其中會發出這些非同步呼叫。
記憶體配置率 記憶體配置率設定檔顯示由程式碼路徑聚集的每單位時間配置的記憶體數量,其中進行了配置。

Golang 設定檔

設定檔類型 說明
CPU 使用率 CPU 設定檔顯示每個代碼路徑的 CPU 使用率。 CPU 側寫程式透過統計取樣處理程序執行來運作。
封鎖呼叫 封鎖呼叫設定檔顯示封鎖呼叫的聚集視圖,亦即等待 IO、通道等的呼叫。 每個程式碼路徑。
記憶體配置 記憶體配置設定檔會依程式碼路徑顯示進行配置的現行記憶體用量。

Python 設定檔

設定檔類型 說明
CPU 使用率 CPU 設定檔顯示每個代碼路徑的 CPU 使用率。 CPU 側寫程式透過統計取樣處理程序執行來運作。
封鎖呼叫 封鎖呼叫設定檔會顯示每個程式碼路徑的呼叫等待聚集視圖。
記憶體配置率 記憶體配置率設定檔顯示由程式碼路徑聚集的每單位時間配置的記憶體數量,其中進行了配置。

Ruby 設定檔

設定檔類型 說明
CPU 使用率 CPU 設定檔顯示每個代碼路徑的 CPU 使用率。 CPU 側寫程式透過統計取樣處理程序執行來運作。

.NET Core 設定檔

附註: 只有 Linux型作業系統才支援 .NET Core 設定檔。

設定檔類型 說明
CPU 使用率 CPU 設定檔顯示每個代碼路徑的 CPU 使用率。 CPU 側寫程式透過統計取樣處理程序執行來運作。