2013-07-27 28 views
0

我與Qt 4.8,並嘗試跨平臺(至少在Linux和Mac)。最簡單的方法來測試一個操作需要多少時間Qt

我需要在GUI中可視化一次操作需要多少次。我曾嘗試過:

QTime t; 
t.start(); 
functionCall(); 
qDebug() << t.elapsed() << "ms"; 

但我讀過它並不可靠。一些替代品?

對不起,沒有C++ 0x

+1

這是在這之前問:http://stackoverflow.com/questions/244646/qt-fast-way-to-measure-time然而,接受和最投票回答有錯。 Qt沒有提供獲取CPU處理時間的方法。你可以嘗試'',但通常並不準確。看到我對這個問題的回答:http://stackoverflow.com/a/13003327/856199 –

+0

你需要什麼樣的精度(即大概你最後測量的東西有多長時間)? (「不可靠」聽起來很奇怪,可能不夠準確,但這是一個不同的問題。) – Mat

+0

@Mat這裏的主要問題是QTime不測量代碼消耗的CPU時間。它測量實際的實時性,即使你的代碼根本沒有運行。 –

回答

2

這不可靠,也不是很準確。改爲使用QElapsedTimer

當然,QTime和QElapsedTimer都會測量掛鐘時間。您需要QtTest和QBENCHMARK in order to get other measures(callgrind,CPU滴答計數器等),另請參閱QTest::setBenchmarkResult函數。

+0

我以爲'QBENCHMARK'只能在單元測試中使用,我需要在應用程序中使用 – nkint

+1

只要您連接到'QtTest'庫,您就可以在您的應用程序中使用任何'QtTest'功能。 –

+0

小心使用'QElapsedTimer'。它似乎現在竊聽(Qt 5.6) - 我可以使用'objectName.start()'和'objectName.elapsed()',但智能感知不會彈出這些,只有靜態成員。儘管如此,他們確實有效。它似乎發生在定義文件中,而不是標題。 –

相關問題