qDebug | std::cout | printf效能表現
阿新 • • 發佈:2021-08-30
來自:Qt君
效能表現結論
- 效能表現:printf > std::cout > qDebug
- std::cout與printf資料基本一致;
- qDebug相對於std::cout和printf差距過大,高頻呼叫有可能影響系統時延;
- 效能均衡推薦選用std::cout;
- 追求效能選用printf。
測試程式
#include <QElapsedTimer> #include <iostream> /* 注:單獨開啟某個巨集測試 */ //#define TEST1 //#define TEST2 //#define TEST3 int main(int argc, char *argv[]) { #ifdef TEST1 { QElapsedTimer t; qint64 it = 0; t.start(); while (t.elapsed() < 1000) { qDebug() << "Test1"; it++; } qDebug() << "Test1: " << it; } #endif #ifdef TEST2 { QElapsedTimer t; qint64 it = 0; t.start(); while (t.elapsed() < 1000) { std::cout << "Test2" << std::endl; it++; } std::cout << "Test2: " << it; } #endif #ifdef TEST3 { QElapsedTimer t; qint64 it = 0; t.start(); while (t.elapsed() < 1000) { printf("Test3\n"); it++; } printf("Test3: %lld\n", it); } #endif return 0 }```