La polyvalence de QObject le rend assez grand.QObject léger - classe de base compatible
Je veux l'utiliser uniquement pour les propriétés statiques (essentiellement juste QMetaObject), sans encourir le massif 120 peine d'octets pour héritant de QObject.
Existe-t-il un équivalent léger?
Modifier
Voici les résultats de profilage - il est pénible d'avoir ~ 30MB perdu pour une tâche de taille moyenne (certains peuvent être ~ 20x plus). Notez le rapport b-écrit - le constructeur QObject définit beaucoup d'état qui n'est presque jamais inspecté.
==10302== ======== ORDERED BY decreasing "max-bytes-live": top 10 allocators ========
==10302==
==10302== -------------------- 1 of 10 --------------------
==10302== max-live: 31,264,224 in 229,884 blocks
==10302== tot-alloc: 31,264,224 in 229,884 blocks (avg size 136.00)
==10302== deaths: none (none of these blocks were freed)
==10302== acc-ratios: 0.01 rd, 1.16 wr (459,768 b-read, 36,321,672 b-written)
==10302== at 0x4C275C0: operator new(unsigned long) (in /usr/lib64/valgrind/vgpreload_exp-dhat-amd64-linux.so)
==10302== by 0x53E1551: QObject::QObject(QObject*) (in /usr/lib64/qt4/libQtCore.so.4.8.5)
==10302== by 0x50465CA: Util::Util() (util.h:84)
vous n'avez pas du tout besoin d'hériter de QObject. quelles sont les caractéristiques dont vous avez besoin? –
'this-> metaObject() -> propriété (int)' et connexes. – qdot
La compilation de méta s'applique uniquement aux types dérivés de QObject. De ma connaissance, il n'y a aucun moyen de le faire sans. Ou vous devrez mettre en place votre propre système de propriété. – jbh