aboutsummaryrefslogtreecommitdiffstats
path: root/tests/benchmarks
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@theqtcompany.com>2016-04-20 13:39:58 +0200
committerErik Verbruggen <erik.verbruggen@qt.io>2016-05-10 08:17:00 +0000
commitc6c0d730b7a88fa22f40d597183e91b73d9d165d (patch)
tree721fe747e03d5157f53a72992e71e33c2d1e72f9 /tests/benchmarks
parentb697f511ab226079c161ea68c18ac85c5533d3cc (diff)
QML: Remove internal field padding from QQuickAnchorPrivate.
Don't store QQuickAnchorLine, but store both fields separately in QQuickAnchorPrivate. This prevents padding of QQuickAnchorLine, saving 48 bytes on x86_64 (or any platform where structs are 8-byte aligned). On x86_64, this also removes ~180 instructions for each QQuickAnchor creation/removal, and speeds up the constructor by 25%. While in the neighborhood, do a drive-by change and merge QQuickAnchorLine::AnchorLine and QQuickAnchors::Anchor by removing the former. Change-Id: I50ab6252b1903f5f1a075174e6185c3048a8f8ec Reviewed-by: Robin Burchell <robin.burchell@viroteck.net> Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
Diffstat (limited to 'tests/benchmarks')
-rw-r--r--tests/benchmarks/qml/creation/tst_creation.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/benchmarks/qml/creation/tst_creation.cpp b/tests/benchmarks/qml/creation/tst_creation.cpp
index e126cdae7e..7b00eabc28 100644
--- a/tests/benchmarks/qml/creation/tst_creation.cpp
+++ b/tests/benchmarks/qml/creation/tst_creation.cpp
@@ -68,6 +68,7 @@ private slots:
void itemtests_qml_data();
void itemtests_qml();
+ void anchors_creation();
void anchors_heightChange();
private:
@@ -375,6 +376,20 @@ void tst_creation::itemtests_qml()
QBENCHMARK { delete component.create(); }
}
+void tst_creation::anchors_creation()
+{
+ QQmlComponent component(&engine);
+ component.setData("import QtQuick 2.0\nItem { Item { anchors.bottom: parent.bottom } }", QUrl());
+
+ QObject *obj = component.create();
+ delete obj;
+
+ QBENCHMARK {
+ QObject *obj = component.create();
+ delete obj;
+ }
+}
+
void tst_creation::anchors_heightChange()
{
QQmlComponent component(&engine);