隨著 Visual Studio 16.9 的釋出,Visual Studio 中的檢測分析變得更好用了。本文介紹我們新的動態分析工具。這個工具顯示了函式被呼叫的確切次數,並且比我們以前的靜態檢測工具要快。它還支援. NET Core,而不需要 PDB。
嘗試下
在 Visual Studio 中,你可以通過 Debug -> Performance Profiler 或者 Alt-F2 啟動效能分析器。進入 summary 頁面後,選擇 Instrumentation 核取方塊。
在分析方面,有兩種收集資料的機制。通過插樁(instrumentation)或取樣收集。使用插樁,應用程式中的每個函式呼叫都被註釋和插樁,以便在呼叫它時,它與有關呼叫者的資訊一起新增到跟蹤中。通過取樣,當前正在執行的呼叫堆疊以一定的間隔從 CPU 輪詢,然後將每個幀新增到跟蹤中。
取樣的價值在於它很少被監聽,因此更有可能在統計上代表生產中執行的應用程式。插樁分析的價值在於,您可以獲得關於函式被呼叫次數的準確呼叫計數。這提供了比正常取樣分析更詳細的資訊,在某些場景中,這會導致時間失真。例如,雖然功能不多,但經常呼叫的函式將比在現實世界中顯示的更多。
對於新的動態插樁場景,還有一些更多的好處。首先,您應該看到該工具執行速度的效能改進。這是因為在這個場景中,我們不再需要使用 VSInstr 來使用插樁。
其次,我們的動態工具支援沒有 PDB 的 .NET Core 專案。在您不得不修改您的構建以生成完整的 PDB 只是為了使用插樁之前。最終,這意味著您可以按原樣執行專案,而不需要做任何額外的工作來檢測託管程式碼。
最後,我們設計了這個檢測工具,使其不需要修改您的程式集檔案。這意味著我們不會意外地破壞您可能擁有的任何簽名,並能夠檢測所有託管程式碼。
請給我們反饋
如果您想與我們的工程團隊討論如何改進這個工具,可以線上填寫調查表,我們很快就會聯絡您。
原文連結
https://devblogs.microsoft.com/visualstudio/new-dynamic-instrumentation-profiling/