qDebug | std::cout | printf性能表现

来自: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
}```
上一篇:2020-12-17


下一篇:keepalived离线安装openssl-devel