2011-06-28 90 views
6

我查看了一些性能分析器here。但...用於.NET 4.0混合代碼的免費.NET Profiler

  • EQATec沒有爲我工作,因爲我有很多裝配我想要配置文件,它對配置文件有限制。有多少麻煩獲得免費許可證?我會去,如果有人向我保證我是EQATEC可以配置文件託管和非託管代碼
  • SlimTune只異形我的託管代碼,即使我設置「簡介本地函數」到「真」
  • XTE探查不再免費
  • 我們有一份之前購買的AQTime 6,但它似乎不支持.NET 4.0應用程序(它甚至無法啓動我的應用程序)
  • 我們使用Visual Studio 2010 Professional SP1,因此我們沒有Visual Studio分析器
  • 我試過「窮人的分析」(多次停止程序並查看它在哪裏),但是我得到的結果太隨機,我更習慣於傳統升譜

(我花了整整一天難倒這個,對不起,如果我太負)

UPDATE:當我清理我的解決方案,重新建造它,並檢查了所有調試信息( .pdb)被複制到與可執行文件相同的目錄中,我再次嘗試了AQTime並且它工作正常!它向我展示了託管代碼和非託管代碼的常規時間信息,所以我的問題得到解決。然而,我正在使用付費分析器,所以這個問題將保持開放,直到我看看xperf或有人提出其他的東西

+2

+1;我不認爲你聽起來很消極!我覺得你的聲音沮喪,但因爲你記錄你的無奈很好,這是很難不同意(你不懶惰,一個_penny pincher_在最壞的情況) – sehe

+0

+1教我的「吝嗇鬼」 ......體現在哪裏? (我不是以英語爲母語):P –

+0

我沒有,我看着它:) [反彈來回通過詞庫只是爲了找到匹配的是我想表達的(HTTP://www.thefreedictionary。 COM /守財奴) – sehe

回答

1

OP:「如果有人向我保證XXXX可以配置文件都託管和非託管代碼「

我們C# Timing Profiler不依賴於如何編譯C#代碼(託管或非託管,或混合)。它應該爲此工作得很好。

+0

謝謝,我會看看它 –

+0

它沒有好,我忘了我們的代碼庫有寫在VB.NET某些DLL,所以我不認爲你的解決方案會做 –

+0

我們現在並沒有一個VB.net分析器工具,true。否則,C#分析器將無法捕獲VB.net例程中的時間,但它應該捕獲所有C#代碼的執行時間。 –

0

CLR Profiler 4 by Microsoft是免費的。你試過了嗎?

你在探查器的非託管部分尋找什麼?

+0

與我在託管部分查找的內容相同:哪個函數或行消耗更多時間。我嘗試了一次,一旦我啓動它就會崩潰。嚴重。 –

0

您對EQATEC Profiler的關注很容易解決:它只執行託管的.NET性能分析,而不是任何類型的非託管性能分析。

pricing所示,實際的性能分析功能僅在可立刻進行性能分析的組件數量上有所不同。因此,$ 0免費版可以簡化單組裝WP7應用程序,就像999美元的企業版一樣。對於額外的價格標籤,您可以一次分析更多的組件,以及少量次要功能,如打印,比較,最小/最大等。

獲得免費許可證trying out EQATEC Analytics據說非常簡單。去獲得無限的企業許可證是一個非常受歡迎的選擇,許多已經在幾個小時內實現了。獲得免費的99美元標準許可不應超過10分鐘左右,如果你是好的。請注意:我在EQATEC工作,實際上我們現在每天都會發放如此多的免費許可證,這幾乎成了一個負擔,因爲每個都是手動處理的(是的,認真!),所以這個特殊優惠可能不會永遠持續下去。

+0

對不起,如果它不處理非託管代碼,它不會幫助我 –

3

AQTime擁有免費版本的最新Profiler(http://smartbear.com/products/free-tools/aqtime-standard/)它支持。淨4,但我懷疑它可以做本地和託管的混合配置文件。

如果你真的認真對待它,你可能會考慮微軟xperf工具(http://msdn.microsoft.com/en-us/performance)。他們有一個陡峭的學習曲線,但他們是免費的,我懷疑任何商業profiler可以做什麼xperf可以(該儀器是在操作系統,而不是在一個單獨的過程,因此無論是Vista,WIN7或WIN2K8是必需的)。我在等人寫它周圍的漂亮的GUI,但它採取有點長... ;-)

xperf將配置您的本機代碼,你可以你的符號裝入結果觀衆。儘管如此,我不認爲它會降低到每行粒度。它有一個.Net CLR提供程序(http://msdn.microsoft.com/en-us/library/dd264809.aspx)。關於xperf的一個很酷的事情是,它還可以顯示其他可能影響你的性能的進程(你可以自由切換它並且只能描述你自己的進程)。例如:由於寫入的USB驅動程序,病毒掃描程序或防火牆軟件錯誤,它能夠顯示IO速度較慢。傳統的分析器只會顯示緩慢的IO,導致您專注於非瓶頸。

順便說一下,還有一個ICorProfilerCallback接口,您可以利用它來編寫您自己的分析器(http://msdn.microsoft.com/zh-cn/library/s5ec0es1.aspx)。

1

我很肯定的回答你的問題是‘沒有一個’。在幾個月前比較一大堆.NET分析器時,我發現只有極少數人可以做混合的.NET /原生分析:AQTime($ 599)和Glowcode($ 499)可以。或者他們說 - 我沒有嘗試過。 EQATEC,Visual Studio,ANTS,Jetbrains dotTrace,Yourkit,XteProfiler,Slimtune等都不能,所以我懷疑你會很快找到一個免費的分析器。

+0

你試過xperf嗎?請參閱@Louis Somers的回答 –

+0

我已經使用了xperf,但僅限於本機代碼 - 而非託管代碼。一般來說,這不是一個容易使用的工具。請查看http://blogs.msdn.com/b/seema/archive/2008/10/08/xperf-a-cpu-sampler-for-silverlight.aspx上的「簡易10步指南」,以及你會明白我的意思。你所得到的只是圖書館/系統調用的原始CPU循環圖,與你自己的應用程序的代碼沒有關係,並且我認爲這僅僅意味着xperf並不是.NET分析的重要工具。 –

+0

我讀了你鏈接到的帖子,我不太確定,也許可以配置xperf使用我的應用程序的調試符號以及運行時。我會盡力回覆你,但這可能需要一些時間,因爲現在我在大學考試 –