diff options
author | Robin Burchell <robin.burchell@crimson.no> | 2017-04-05 14:19:14 +0200 |
---|---|---|
committer | Robin Burchell <robin.burchell@crimson.no> | 2017-04-06 12:00:54 +0000 |
commit | ecc249bfadf540a79c2e42d59356387b4963a721 (patch) | |
tree | c1a9dbafb4cdbf3ed76ba19b1010ed6c84742612 /benchmarks | |
parent | dce842d522bde8decf91cdd6ece6fc639dc04389 (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.qml | 18 | ||||
-rw-r--r-- | benchmarks/auto/creation/quick/delegates_item_states.qml | 29 |
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 } + } + ] + } +} + |