summaryrefslogtreecommitdiffstats
path: root/tests/benchmarks/declarative/creation
diff options
context:
space:
mode:
authorMichael Brasser <michael.brasser@nokia.com>2010-03-17 06:49:13 (GMT)
committerMichael Brasser <michael.brasser@nokia.com>2010-03-17 06:49:13 (GMT)
commitcaea4098b275eaecdf0c5c4019b897e47d8d9c13 (patch)
treec12985d86bd484ad4fe82ce8d02be934967908c3 /tests/benchmarks/declarative/creation
parent0a52765f1c7fbd7d5286bcaab32cff35feb89a95 (diff)
downloadQt-caea4098b275eaecdf0c5c4019b897e47d8d9c13.zip
Qt-caea4098b275eaecdf0c5c4019b897e47d8d9c13.tar.gz
Qt-caea4098b275eaecdf0c5c4019b897e47d8d9c13.tar.bz2
Readd the itemtree benchmarks for comparison purposes.
Diffstat (limited to 'tests/benchmarks/declarative/creation')
-rw-r--r--tests/benchmarks/declarative/creation/tst_creation.cpp102
1 files changed, 102 insertions, 0 deletions
diff --git a/tests/benchmarks/declarative/creation/tst_creation.cpp b/tests/benchmarks/declarative/creation/tst_creation.cpp
index 743caa4..7aec32a 100644
--- a/tests/benchmarks/declarative/creation/tst_creation.cpp
+++ b/tests/benchmarks/declarative/creation/tst_creation.cpp
@@ -74,6 +74,13 @@ private slots:
void qobject_10tree_qml();
void qobject_10tree_cpp();
+ void itemtree_notree_cpp();
+ void itemtree_objtree_cpp();
+ void itemtree_cpp();
+ void itemtree_data_cpp();
+ void itemtree_qml();
+ void itemtree_scene_cpp();
+
void elements_data();
void elements();
@@ -233,6 +240,101 @@ void tst_creation::qobject_alloc()
}
}
+struct QDeclarativeGraphics_DerivedObject : public QObject
+{
+ void setParent_noEvent(QObject *parent) {
+ bool sce = d_ptr->sendChildEvents;
+ d_ptr->sendChildEvents = false;
+ setParent(parent);
+ d_ptr->sendChildEvents = sce;
+ }
+};
+
+inline void QDeclarativeGraphics_setParent_noEvent(QObject *object, QObject *parent)
+{
+ static_cast<QDeclarativeGraphics_DerivedObject *>(object)->setParent_noEvent(parent);
+}
+
+void tst_creation::itemtree_notree_cpp()
+{
+ QBENCHMARK {
+ QDeclarativeItem *item = new QDeclarativeItem;
+ for (int i = 0; i < 30; ++i) {
+ QDeclarativeItem *child = new QDeclarativeItem;
+ }
+ delete item;
+ }
+}
+
+void tst_creation::itemtree_objtree_cpp()
+{
+ QBENCHMARK {
+ QDeclarativeItem *item = new QDeclarativeItem;
+ for (int i = 0; i < 30; ++i) {
+ QDeclarativeItem *child = new QDeclarativeItem;
+ QDeclarativeGraphics_setParent_noEvent(child,item);
+ }
+ delete item;
+ }
+}
+
+void tst_creation::itemtree_cpp()
+{
+ QBENCHMARK {
+ QDeclarativeItem *item = new QDeclarativeItem;
+ for (int i = 0; i < 30; ++i) {
+ QDeclarativeItem *child = new QDeclarativeItem;
+ QDeclarativeGraphics_setParent_noEvent(child,item);
+ child->setParentItem(item);
+ }
+ delete item;
+ }
+}
+
+void tst_creation::itemtree_data_cpp()
+{
+ QBENCHMARK {
+ QDeclarativeItem *item = new QDeclarativeItem;
+ for (int i = 0; i < 30; ++i) {
+ QDeclarativeItem *child = new QDeclarativeItem;
+ QDeclarativeGraphics_setParent_noEvent(child,item);
+ QDeclarativeListReference ref(item, "data");
+ ref.append(child);
+ }
+ delete item;
+ }
+}
+
+void tst_creation::itemtree_qml()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("item.qml"));
+ QObject *obj = component.create();
+ delete obj;
+
+ QBENCHMARK {
+ QObject *obj = component.create();
+ delete obj;
+ }
+}
+
+void tst_creation::itemtree_scene_cpp()
+{
+ QGraphicsScene scene;
+ QDeclarativeItem *root = new QDeclarativeItem;
+ scene.addItem(root);
+ QBENCHMARK {
+ QDeclarativeItem *item = new QDeclarativeItem;
+ for (int i = 0; i < 30; ++i) {
+ QDeclarativeItem *child = new QDeclarativeItem;
+ QDeclarativeGraphics_setParent_noEvent(child,item);
+ child->setParentItem(item);
+ }
+ item->setParentItem(root);
+ delete item;
+ }
+ delete root;
+}
+
void tst_creation::elements_data()
{
QTest::addColumn<QByteArray>("type");