2011-05-30 45 views
2

我正面臨一個棘手的問題,我希望你們能夠提供幫助!瞭解事件堆棧大小

我正在使用的應用程序在其生命週期的某個點上變得越來越慢,我懷疑它與傳入事件有關。

爲了澄清這種行爲,並知道它是否是我的惡夢的實際來源,我想跟蹤事件堆棧大小。

那麼你們知道一種方法來知道有多少事件在排隊,等待我的應用程序的事件處理程序處理?

是否可以更改此值?我的問題是否有意義?

在此先感謝!

+0

這是winforms還是asp.net? – 2011-05-30 14:07:43

+0

這是應用程序的核心,旨在從控制檯應用程序,winforms應用程序或簡單服務啓動。就我而言,它是從一個控制檯應用程序開始的。 – 2011-05-30 14:09:38

+0

你的活動的來源是什麼?他們是否來自同一個線程?從另一個線程?從另一個過程?從硬件?來自用戶交互?從網絡?我認爲這對你的情況是一個非常重要的因素。 – Murven 2011-05-30 14:16:48

回答

2

我知道這不是對您的問題的直接回答,但我通常會在性能分析軟件的幫助下進行性能調整。對於.NET我可以推薦jetbrains dotTrace,但我相信你會在這個SO question中找到一個。

+0

我會嘗試一些這些工具,它一定會幫助我!非常感謝你的幫助 ! – 2011-05-31 08:10:34

1

這可能取決於您處理的事件類型。我認爲winform環境中的事件有很大的開銷,但這可能不是問題。

另一種設置是簡單地讓所有事件'發佈'爲工作項目列表並讓'工作者'線程清空工作列表。這可以讓您看到工作項目列表,併爲您提供一些控制/指導來優化代碼。