人們可以使用分析器,但為什么不干脆停止程序呢?如果某個東西使一個單線程程序花費的時間是它的10倍,你可以在它上運行一個分析器。你也可以用一個“暫?!卑粹o來停止它,你會看到它到底在做什么。即使它比應該的速度慢了10%,如果你停了更多次,不久你就會看到它重復地做著不必要的事情。通常情況下,問題在于堆棧中間某個不需要的函數調用。這不能衡量問題,但它確實找到了問題。編輯:反對意見大多假設你只拿了一個樣本。如果你是認真的,吃10。造成一定百分比浪費的代碼行,如40%,平均會出現在該部分樣本上的堆棧上。瓶頸(在單線程代碼中)無法隱藏。編輯:為了表明我的意思,很多反對意見都是“沒有足夠的樣本,所以你看到的可能是完全虛假的”-關于機會的模糊想法。但如果說任何可識別的描述,不只是在例行公事或日常活動中,在30%的時間內有效,那么在任何一個樣本上看到它的概率都是30%。然后假設只采集了10個樣本。問題在10個樣本中出現的次數如下二項分布,看到0次的概率是.028。一次看到它的概率是.121。2次,概率是.233,3次是.267,然后掉下來。因為小于兩次的概率是.028+.121=.139,這意味著看到它的概率是1-.139=.861。一般的規則是,如果您看到的東西,您可以修復兩個或更多的樣本,這是值得的。在這種情況下,在10個樣本中看到它的機會是86%。如果你在14%的人誰沒有看到它,只需采取更多的樣本,直到你這樣做。(如果樣本數量增加到20個,則兩次或兩次以上的機會增加到99%以上。)所以它還沒有被精確的測量,但是它已經被精確的發現了,這一點很重要,因為它可以很容易地被分析器發現,比如涉及數據狀態的東西,而不是程序計數器。
3 回答

慕工程0101907
TA貢獻1887條經驗 獲得超5個贊
添加回答
舉報
0/150
提交
取消