我有一個性能問題,我懷疑一個標準的C庫函數耗時過長,導致我的整個系統(進程套件)基本上出現「呃逆」。果然,如果我評論圖書館的功能調用,打嗝就會消失。這促使我調查了什麼標準方法來證明這種類型的東西?測試函數以查看它是否會導致整個系統掛起一秒(導致其他進程暫時餓死),最佳做法是什麼?C++漸近分析
我至少希望將被調用的函數和可見的凍結關聯起來。
感謝
我有一個性能問題,我懷疑一個標準的C庫函數耗時過長,導致我的整個系統(進程套件)基本上出現「呃逆」。果然,如果我評論圖書館的功能調用,打嗝就會消失。這促使我調查了什麼標準方法來證明這種類型的東西?測試函數以查看它是否會導致整個系統掛起一秒(導致其他進程暫時餓死),最佳做法是什麼?C++漸近分析
我至少希望將被調用的函數和可見的凍結關聯起來。
感謝
,以確定這些東西的最佳方式是使用分析工具,以獲取有關如何長每個函數調用花費的信息。
未能設置保留內存塊的功能。然後在你的代碼中寫入一個字符串到內存中,包括當前時間。 (這可以避免與寫入顯示器相關的延遲)。 運行完代碼後,請拔出內存並對其進行解析,以確定代碼的部分時間長短。
我試圖找出你的意思是「打嗝」。我想象你的程序做這樣的事情:
while (...){
// 1. do some computing and/or file I/O
// 2. print something to the console or move something on the screen
}
,通常印刷或圖形輸出在主觀上連續的方式一起哼唱,但有時它似乎凍結,而計算部分需要更長的時間。
這是你的意思嗎?
如果是這樣,我懷疑它是最總是在步驟2中運行狀態,但在打嗝狀態在步驟花費時間1
我會註釋掉第2步,所以它會花費幾乎所有的現在是在打嗝狀態,然後只是pause it under the debugger看看它在做什麼。 該技術非常輕鬆地告訴你問題是什麼。
這聽起來不像是與漸近複雜性有關。如果您告訴我們它是哪個功能,它也可能有所幫助。 – 2010-05-24 22:02:00