// Copyright (C) 2023 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #include #include #include #include #include class DeltaBlue : public QObject { Q_OBJECT public: private slots: void qml() { QBENCHMARK { QObject *instance = engine.singletonInstance( "DeltaBlue", "Main"); QMetaObject::invokeMethod(instance, "deltaBlue"); engine.clearSingletons(); } } void nicer() { QQmlComponent chain(&engine, "DeltaBlue", "ChainTest"); QQmlComponent projection(&engine, "DeltaBlue", "ProjectionTest"); QBENCHMARK { QScopedPointer chainTest(chain.create()); QMetaObject::invokeMethod(chainTest.data(), "run"); QScopedPointer projectionTest(projection.create()); QMetaObject::invokeMethod(projectionTest.data(), "run"); } } void onlyCreate() { QQmlComponent chain(&engine, "DeltaBlue", "ChainTest"); QQmlComponent projection(&engine, "DeltaBlue", "ProjectionTest"); QBENCHMARK { QScopedPointer chainTest(chain.create()); QScopedPointer projectionTest(projection.create()); } } void js() { QQmlComponent main2(&engine, "DeltaBlue", "Main2"); QBENCHMARK { QScopedPointer instance(main2.create()); QMetaObject::invokeMethod(instance.data(), "deltaBlue"); } } void jsOnlyCreate() { QQmlComponent main2(&engine, "DeltaBlue", "Main2"); QBENCHMARK { QScopedPointer instance(main2.create()); } } private: QQmlApplicationEngine engine; }; QTEST_MAIN(DeltaBlue) #include "main.moc"