簡體   English   中英

是否可以將 Visual Studio 性能分析與服務結構一起使用?

[英]Is it possible to use visual studio performance profiling with service fabric?

希望這很簡單...

我想對我的服務結構集群進行性能分析。

到目前為止,我: - 在不進行調試的情況下轉到“啟動診斷工具”。 - 通過向導選擇我的服務結構項目作為啟動項目。 - 然后它詢問要包含哪些項目,所以我包含了我的服務 exe - 然后我選擇了檢測(我想要方法級計時)

然后我點擊開始,我的 exe 立即崩潰。 我認為這是因為 Visual Studio 試圖在服務結構上下文之外將我的“服務”作為獨立的 exe 運行。

不知道該怎么做,但...

堆棧跟蹤是:

調試:激活選項

未處理的異常:System.Fabric.FabricConnectionDeniedException:未授權連接 ---> System.Runtime.InteropServices.COMException:來自 HRESULT 的異常:0x80071C43 在 System.Fabric.Interop.NativeRuntime.FabricEndGetNodeContext(IFabricAsyncOperationContext context) 在 SystemtimeFabric.FabricRun .NativeFabricRuntimeFactory.GetNodeContextEndWrapper(IFabricAsyncOperationContext context) 在 System.Fabric.Interop.AsyncCallOutAdapter2`1.Finish(IFabricAsyncOperationContext context, Boolean expectedCompletedSynchronously) --- 內部異常堆棧跟蹤結束 --- 在 System.Runtime.CompilerServices.TaskNwaiter(ThrowForSuccessow)任務任務) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 Microsoft.ServiceFabric.Services.Runtime.RuntimeContext.d__3.MoveNext() --- 從上一個拋出異常的位置的堆棧跟蹤結束 ---在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime.C ompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.ServiceFabric.Services.Runtime.ServiceRuntime.d__0.MoveNext() --- 從上一個拋出異常的位置結束堆棧跟蹤---在 System.Runtime.CompilerServices.TaskAwaiter .ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult()

提前感謝您的幫助!

您看到的是 Visual Studio 嘗試在 Service Fabric 運行時之外自行啟動您的服務宿主進程。 通常,當您通過 Visual Studio 運行服務時,您會部署應用程序項目,該項目會經歷在本地 Service Fabric 群集上注冊和實例化服務的過程。

出於這個原因,檢測當前不適用於 Service Fabric 項目。 我們正在尋找在未來實現這一目標的方法。

您仍然可以進行采樣分析,這允許您將分析器附加到正在運行的 EXE。 在這種情況下,您將首先正常部署您的應用程序,然后將分析器附加到您的服務 EXE。

https://msdn.microsoft.com/en-us/library/dd255414.aspx?f=255&MSPPError=-2147217396

  1. 如果需要,請使用VSPerfClrEnv {/globalsamplegc | /globalsamplegclife}[/samplelineoff]的變體VSPerfClrEnv {/globalsamplegc | /globalsamplegclife}[/samplelineoff]初始化分析環境變量VSPerfClrEnv {/globalsamplegc | /globalsamplegclife}[/samplelineoff] VSPerfClrEnv {/globalsamplegc | /globalsamplegclife}[/samplelineoff] ,然后重新啟動。
  2. 啟動探查器以收集具有以下變體的數據:

    VSPerfCmd /START:{COVERAGE|SAMPLE|CONCURRENCY|TRACE} /OUTPUT:file /ATTACH:(pid|name)[,(pid|name)]* [/USER:[domain\\]username]

如果服務或進程在不同的用戶帳戶下運行,則需要/USER:[domain\\]username

.vspx.vsp文件擴展名被添加到/OUPUT:file規范中。 然后,您可以在 Visual Studio 中打開.vspx.vsp文件以查看分析報告。

運行VSPerfCmd /? 了解更多解釋並查看完整的分析選項列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM