【譯】.NET 的新的動態檢測分析


  隨着 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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM