来自: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
}```