2012-03-09 44 views

回答

1

Equatec是一個很好的分析器,但根據我的經驗,這是在一個大尺寸的.net應用程序中發生的情況。

你可能會發現一個活動很好的例程,比如20%,你甚至可能會在裏面找到一個特別的「熱」線,但是你可以看看它並且不知道該怎麼做它,因爲據你所知,這是必要的。

與此同時,可能有比代碼中潛伏的東西更大的東西,它在剖析器中並不能很好地顯示出來,因爲它並不侷限於一個例程。

如果我只舉一個例子,我已經看到一個應用程序花費大約50%的啓動時間在調用堆棧中的20-30個層次從資源獲取字符串,以便它可以將它們顯示給用戶讓他們知道需要這麼長時間。如果它找到了另一種方式來做到這一點,它會啓動兩倍的速度!螞蟻探查器(另一個很好的)給出沒有線索至於發生了什麼。

我是如何找到它的?舊的方法,相同的方式it's done here,並且是explained here

下圖所示,如果手動採樣棧N次,通過暫停程序,對那些你看它做什麼樣的你可以用一些替代更快,時間的量即可期望保存,並且相應的加速比。例如,紅色曲線(2/5)意味着如果你拿了五個堆棧樣本,並且你看到了其中兩個可以改進的東西,那麼你不知道你將節省多少錢。然而,最有可能的值是2/5(40%,加速67%),平均值是3/7(43%,加速75%),並且它的範圍大概在10%之間(加速11% )和70%(加速3.33倍)。如果你認爲你不能相信少量的樣品,那就是這種情況。 不是一個糟糕的賭博。 如果您想要更多的確定性,請採取更多樣本。

Beta distribution of cost for seeing something on S samples out of N total samples.

+0

EQATEC Profiler會檢測到您的「啓動時間20-30層深」示例:它總是向您顯示罪魁禍首,即總共佔用大部分時間的方法,並且不會因昂貴的方法被從許多其他方法調用。我認爲這是一個非常強大的功能。 – 2012-03-19 00:16:08

+0

@Richard:如果您還記得,我無法運行EQATEC,但我可以運行ANTS。也許ANTS只是EQATEC的影子,我不知道,但它的工作原理與測量方法百分比的原理相同。那就是問題所在。有很多方法,叫或不叫,高百分比。你看着他們,他們都看起來非常好。直到你把測量放在一邊,而不是及時地檢查一些深層樣本,並問「爲什麼這一刻被花費了?」。問題出現。測量不會給出原因,沒有它們,問題就不會出現。 – 2012-03-19 02:14:58

+0

我認爲螞蟻是一個很好的分析器,但它顯然可以被你的例子欺騙。 EQATEC分析工作者不是隻考慮調用樹和百分比,而是考慮每種方法的總數,因此佔用大部分時間的人將「冒泡」到犯罪嫌疑人名單的首位。 (順便提一下,你的問題當時是由簽署的程序集引起的 - 如果你重新簽署或跳過這些程序,那麼它應該可以工作) – 2012-03-19 07:22:49

0

(的Beta distributionX ~ Be(number of hits + 1, number of misses + 1)和提速= 1 /(1-X)圖解。)由於當前版本3.8.14:沒有,這是不可能的。這將是一個美妙的改進,但它不在EQATEC的直接路線圖上。

相關問題