从QML实例化C ++对象具有巨大的内存使用开销

时间:2017-01-03 23:35:00

标签: c++ qt memory qml memory-efficient

在C ++中在堆上实例化QObject派生类,每个对象大约有160个字节。

通过qmlRegisterType()注册相同的对象以便从QML创建并通过createObject()动态创建对象,这为每个对象提供了超过2000个字节。

差别很大,从QML创建时,每个对象的内存几乎是13倍。请注意,与C ++中的对象相比,该对象没有任何绑定或任何额外的内容。

当然,导出QObject意味着它是一个不可见的对象。因此,就场景图渲染而言,它不应该有任何额外的开销。

请注意,我已经多次运行了大量对象的测试,获得了一致的结果并按比例放大,因此不太可能是由于某些差异或QML引擎内存预分配造成的。

为什么会这样?这是正常的吗?有没有办法减少它?

0 个答案:

没有答案