trollixx

QObject Destruction Benckmark

Jul 1st, 2014
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.76 KB | None | 0 0
  1. #include <QObject>
  2. #include <QTest>
  3.  
  4. class QObjectBenchmark : public QObject
  5. {
  6.     Q_OBJECT
  7. private slots:
  8.     void destruction_benckmark_data();
  9.     void destruction_benckmark();
  10. };
  11.  
  12. void QObjectBenchmark::destruction_benckmark_data()
  13. {
  14.     QTest::addColumn<int>("n");
  15.  
  16.     QList<int> childrenCount;
  17.     childrenCount << 1000 << 10000 << 100000;
  18.  
  19.     foreach (const int count, childrenCount)
  20.         QTest::newRow(qPrintable(QString::number(count) + " children")) << count;
  21. }
  22.  
  23. void QObjectBenchmark::destruction_benckmark()
  24. {
  25.     QFETCH(int, n);
  26.     QBENCHMARK {
  27.         QObject *p = new QObject();
  28.         for (int i = 0; i < n; ++i)
  29.             new QObject(p);
  30.  
  31.         delete p;
  32.     }
  33. }
  34.  
  35. QTEST_MAIN(QObjectBenchmark)
  36.  
  37. #include "main.moc"
Advertisement
Add Comment
Please, Sign In to add comment