aboutsummaryrefslogtreecommitdiffstats
path: root/benchmarks
diff options
context:
space:
mode:
authorRobin Burchell <robin.burchell@crimson.no>2017-04-05 14:19:14 +0200
committerRobin Burchell <robin.burchell@crimson.no>2017-04-06 12:00:54 +0000
commitecc249bfadf540a79c2e42d59356387b4963a721 (patch)
treec1a9dbafb4cdbf3ed76ba19b1010ed6c84742612 /benchmarks
parentdce842d522bde8decf91cdd6ece6fc639dc04389 (diff)
Add a benchmark offering a simple comparison of states vs bindings
The performance of using states is around half that of using a simple binding (which isn't too surprising given all the extra creation and allocation involved). Change-Id: I4f12819a71ef88e8f68cc83ae00b1726ca74609e Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
Diffstat (limited to 'benchmarks')
-rw-r--r--benchmarks/auto/creation/quick/delegates_item_bindings.qml18
-rw-r--r--benchmarks/auto/creation/quick/delegates_item_states.qml29
2 files changed, 47 insertions, 0 deletions
diff --git a/benchmarks/auto/creation/quick/delegates_item_bindings.qml b/benchmarks/auto/creation/quick/delegates_item_bindings.qml
new file mode 100644
index 0000000..450d7dd
--- /dev/null
+++ b/benchmarks/auto/creation/quick/delegates_item_bindings.qml
@@ -0,0 +1,18 @@
+import QtQuick 2.0
+import QmlBench 1.0
+
+// Compare with delegates_item_states
+CreationBenchmark {
+ id: root;
+ count: 50
+ staticCount: 5000
+ delegate: Item {
+ id: itemInstance
+ x: Math.random() * (root.width - width)
+ y: Math.random() * (root.height - height)
+ width: 30
+ height: 15
+ visible: 1 == 1 ? true : false
+ }
+}
+
diff --git a/benchmarks/auto/creation/quick/delegates_item_states.qml b/benchmarks/auto/creation/quick/delegates_item_states.qml
new file mode 100644
index 0000000..95e6ab4
--- /dev/null
+++ b/benchmarks/auto/creation/quick/delegates_item_states.qml
@@ -0,0 +1,29 @@
+import QtQuick 2.0
+import QmlBench 1.0
+
+// Compare with delegates_item_bindings
+CreationBenchmark {
+ id: root;
+ count: 50
+ staticCount: 5000
+ delegate: Item {
+ id: itemInstance
+ x: Math.random() * (root.width - width)
+ y: Math.random() * (root.height - height)
+ width: 30
+ height: 15
+ states: [
+ State {
+ name: "visible"
+ when: 1 == 1
+ PropertyChanges { target: itemInstance; visible: true }
+ },
+ State {
+ name: "invisible"
+ when: 0 == 1
+ PropertyChanges { target: itemInstance; visible: false }
+ }
+ ]
+ }
+}
+