Qt文档阅读笔记-单元测试中构建标准检测程序(CPU、Linux性能、内存泄漏等)
生活随笔
收集整理的這篇文章主要介紹了
Qt文档阅读笔记-单元测试中构建标准检测程序(CPU、Linux性能、内存泄漏等)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
這里需要介紹一個(gè)宏,主要就是靠使用這個(gè)宏完成功能:
QBENCHMARK{//TODO }在單元測(cè)試中,這個(gè)宏在那個(gè)函數(shù)中,那么這個(gè)函數(shù)就會(huì)進(jìn)行多次測(cè)試,如果不需要多次調(diào)用可以用下面的這宏代替:
QBENCHMARK_ONECE{//TODO }通過(guò)多次測(cè)試,得到其性能,下面給出一張表,在單元測(cè)試的時(shí)候可以添加如下的參數(shù):
程序運(yùn)行截圖如下:
默認(rèn)運(yùn)行:
帶-tickcounter參數(shù)運(yùn)行:
源碼如下:
test5.pro
QT += widgets testlib SOURCES = benchmarking.cpp INSTALLS += targetbenchmark.cpp
#include <QtWidgets> #include <QTest> #include <QDebug>class TestBenchmark : public QObject{Q_OBJECTprivate slots:void simple();void multiple_data();void multiple();void series_data();void series(); };void TestBenchmark::simple(){QString str1 = QString("This is a test string");QString str2 = QString("This is a test string");QCOMPARE(str1.localeAwareCompare(str2), 0);QBENCHMARK{str1.localeAwareCompare(str2);} }void TestBenchmark::multiple_data(){QTest::addColumn<bool>("useLocaleCompare");QTest::newRow("locale aware compare") << true;QTest::newRow("standard compare") << false; }void TestBenchmark::multiple(){QFETCH(bool, useLocaleCompare);QString str1 = QString("This is a test string");QString str2 = QString("This is a test string");int result;if(useLocaleCompare){QBENCHMARK{result += str1.localeAwareCompare(str2);}}else{QBENCHMARK{result = (str1 == str2);}}Q_UNUSED(result); }void TestBenchmark::series_data(){QTest::addColumn<bool>("useLocaleCompare");QTest::addColumn<int>("stringSize");for(int i = 1; i < 10000; i += 2000){QByteArray size = QByteArray::number(i);QTest::newRow(("locale aware compare -- " + size).constData()) << true << i;QTest::newRow(("standard compare -- " + size).constData()) << false << i;} }void TestBenchmark::series(){QFETCH(bool, useLocaleCompare);QFETCH(int, stringSize);QString str1 = QString().fill('A', stringSize);QString str2 = QString().fill('A', stringSize);int result;if(useLocaleCompare){QBENCHMARK{result = str1.localeAwareCompare(str2);}}else{QBENCHMARK{result = (str1 == str2);}}Q_UNUSED(result); }QTEST_MAIN(TestBenchmark) #include "benchmarking.moc"?
?
總結(jié)
以上是生活随笔為你收集整理的Qt文档阅读笔记-单元测试中构建标准检测程序(CPU、Linux性能、内存泄漏等)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Linux笔记-bash中解决if语句中
- 下一篇: Wireshark文档阅读笔记-WebS