Qt 性能:在包中导入对象更好还是单独导入更好? 让我说我有一组C++对象想暴露给QML。
我可以想象这样做的两种方式: 第一种方法,每个对象一条导入语句Qt 性能:在包中导入对象更好还是单独导入更好? 让我说我有一组C++对象想暴露给QML。,qt,qml,Qt,Qml,我可以想象这样做的两种方式: 第一种方法,每个对象一条导入语句 qmlRegisterType<Object1>("my.package.object1", 1, 0, "Object1"); qmlRegisterType<Object2>("my.package.object2", 1, 0, "Object2"); qmlRegisterType<Object3>("my.package.object3", 1, 0, "Object3"); qmlRe
qmlRegisterType<Object1>("my.package.object1", 1, 0, "Object1");
qmlRegisterType<Object2>("my.package.object2", 1, 0, "Object2");
qmlRegisterType<Object3>("my.package.object3", 1, 0, "Object3");
qmlRegisterType<Object4>("my.package.object4", 1, 0, "Object4");
...
第二种方法所有对象的一条导入语句:
qmlRegisterType<Object1>("my.package", 1, 0, "Object1");
qmlRegisterType<Object2>("my.package", 1, 0, "Object2");
qmlRegisterType<Object3>("my.package", 1, 0, "Object3");
qmlRegisterType<Object4>("my.package", 1, 0, "Object4");
...
显然,将包中的对象分组更简单(只要有意义)。性能不应该是你主要关心的问题
就性能而言,一种方法比另一种方法好吗?我不是100%确定,但我想说的是,QML引擎在找到导入语句时会检查模块,因此,如果将所有类放在同一个模块中,它们将同时被找到,但如果将它们分开,则需要多个模块检查 因此,真正的答案是:
免责声明:无论如何,我们不知道“新模块检查”开销的基准,也不知道“模块中未使用的对象”开销。我认为在决定如何组织模块时,性能不是主要考虑的问题。当然不是,这只是为了更好地理解引擎。
qmlRegisterType<Object1>("my.package", 1, 0, "Object1");
qmlRegisterType<Object2>("my.package", 1, 0, "Object2");
qmlRegisterType<Object3>("my.package", 1, 0, "Object3");
qmlRegisterType<Object4>("my.package", 1, 0, "Object4");
...
import my.package 1.0
Object3 {
Object2 { ... }
Object1 { ... }
}