我與Qt 4.8,並嘗試跨平臺(至少在Linux和Mac)。最簡單的方法來測試一個操作需要多少時間Qt
我需要在GUI中可視化一次操作需要多少次。我曾嘗試過:
QTime t;
t.start();
functionCall();
qDebug() << t.elapsed() << "ms";
但我讀過它並不可靠。一些替代品?
對不起,沒有C++ 0x
我與Qt 4.8,並嘗試跨平臺(至少在Linux和Mac)。最簡單的方法來測試一個操作需要多少時間Qt
我需要在GUI中可視化一次操作需要多少次。我曾嘗試過:
QTime t;
t.start();
functionCall();
qDebug() << t.elapsed() << "ms";
但我讀過它並不可靠。一些替代品?
對不起,沒有C++ 0x
這不可靠,也不是很準確。改爲使用QElapsedTimer。
當然,QTime和QElapsedTimer都會測量掛鐘時間。您需要QtTest和QBENCHMARK in order to get other measures(callgrind,CPU滴答計數器等),另請參閱QTest::setBenchmarkResult函數。
我以爲'QBENCHMARK'只能在單元測試中使用,我需要在應用程序中使用 – nkint
只要您連接到'QtTest'庫,您就可以在您的應用程序中使用任何'QtTest'功能。 –
小心使用'QElapsedTimer'。它似乎現在竊聽(Qt 5.6) - 我可以使用'objectName.start()'和'objectName.elapsed()',但智能感知不會彈出這些,只有靜態成員。儘管如此,他們確實有效。它似乎發生在定義文件中,而不是標題。 –
這是在這之前問:http://stackoverflow.com/questions/244646/qt-fast-way-to-measure-time然而,接受和最投票回答有錯。 Qt沒有提供獲取CPU處理時間的方法。你可以嘗試'',但通常並不準確。看到我對這個問題的回答:http://stackoverflow.com/a/13003327/856199 –
你需要什麼樣的精度(即大概你最後測量的東西有多長時間)? (「不可靠」聽起來很奇怪,可能不夠準確,但這是一個不同的問題。) – Mat
@Mat這裏的主要問題是QTime不測量代碼消耗的CPU時間。它測量實際的實時性,即使你的代碼根本沒有運行。 –