2013-04-24 14 views
1

我已閱讀並體驗過性能分析器有時會出錯。有時他們會爲某些功能生成不正確的運行時間,並顯示實際不存在的調用圖。我想知道這些錯誤是如何發生的,這些錯誤的主要原因是什麼?代碼分析器如何可能不正確

回答

1

這個問題很廣泛,因爲很多東西都稱爲分析器,測量不同的東西,從內存分配到管道刷新。

問題的一部分是概念性的。例如,你(和其他人)說「某些功能的運行時間不正確」。這個術語「運行時間」需要一個定義。這是否意味着「所有調用的總運行時間總計」或「每個調用的平均運行時間」? 它是否包含調用函數? 這是否意味着只是CPU時間或壁鐘耗用時間? 這只是模糊思維的一個例子。

許多人都有一個更深層的概念問題。他們認爲他們正在尋找「慢速功能」。我不知道他們在哪裏得到這個想法,可能來自課堂上的某個人。加速的機會並不侷限於特定的功能,如果速度是目標的話,你不能忽視那些不能實現的功能。

另外,他們認爲只要他們測量,這些測量的準確性就很重要。 它沒有幫助找到速度錯誤。

恕我直言,而不是嘗試診斷探查器的缺點,應該1)取消所有的myths around the subject,和2)強調正面和learn about what does work