2013-06-12 10 views
5

Sto cercando di ottimizzare alcuni codici QML per velocità e memoria.Pre-compilazione QML in bytecode, è possibile?

So che è possibile creare un file di risorse Qt (* .rcc) per ridurre lo spazio file * .qml. Anche se non ho numeri su quanto miglioramento/compressione si ottiene con questo passaggio.
Controllare come farlo in Qt/QML Compiling libraries and resources

Ma so anche che è stato in some people heads roadmap before di precompilare i file QML in bytecode, quindi questo passo potrebbe essere evitato in fase di esecuzione.

Quindi, qualcuno sa se è possibile precompilare QML in qualsiasi versione Qt rilasciata? o in qualsiasi programma?

+0

* QML * è fondamentalmente * JavaScript/CSS *. Esistono strumenti di compattazione HTML/CSS/JavaScript. Fondamentalmente, minimizzano i nomi delle variabili e rimuovono lo spazio bianco. È possibile riutilizzare questi strumenti per * QML *. Ad esempio [compattatore CSS] (http://csscompactor.com/default.aspx). Poiché * size * è il tuo criterio, usare un * compressore * è meglio di * byte-code *. Ad esempio, ** LZO **, ** LZMA **, ** GZIP **, ecc. Esiste una versione * JIT * del motore JavaScript, ma diversa per CPU. –

+0

Per essere chiari nel caso in cui mi spiegassi male, lo scopo non è solo _size_, ma anche ridurre i tempi di caricamento. @artlessnoise Hai provato qualche strumento? Ha avuto successo al 100%? – kikeenrique

+0

Non ho provato nessuno di questi con QML. Sono solo ** molti ** strumenti ben noti per ridurre le dimensioni di HTML/CSS/Javascript. Se la velocità è il tuo obiettivo, solo il caricatore Qt QML può renderlo più veloce; questo non esiste afaik. –

risposta

2

Pre-compilazione QML in bytecode, è possibile?

Sfortunatamente, questo non è possibile al momento. Inoltre, questa è una richiesta di funzionalità abbastanza grande, quindi non sarà probabilmente supportata in qualsiasi momento presto. Sicuramente, non nel prossimo 5.2 per il quale abbiamo il congelamento delle funzionalità in una settimana, ma probabilmente neanche 5,3 per la prossima estate, ecc.

Ho appena discusso questo problema a breve con uno degli sviluppatori, quindi tu potrebbe aver bisogno di vivere con (fuori) per ora. Stavo anche chiedendo di creare un rapporto jira per rintracciarlo, ma mi è stato detto che una tale grande richiesta di funzionalità non viene tracciata lì come la riscrittura del motore v4 per il repository dichiarativo nel passato prossimo.

9

Con Qt 5.3 è possibile:

http://doc.qt.digia.com/QtQuickCompiler/

"Il Qt rapida compilatore è uno sviluppo add-on per applicazioni Qt rapida che permette di compilare QML codice sorgente in binario finale Quando si utilizza questo componente aggiuntivo, il tempo di avvio dell'applicazione viene notevolmente migliorato e non è più necessario distribuire i file .qml insieme all'applicazione. "

+4

AFAIK, è richiesta una licenza aziendale. Controlla il comunicato stampa QT 5.3 (http://blog.qt.digia.com/blog/2014/05/20/qt-5-3-released/) – kikeenrique

+0

hai ragione, loro lo dicono: "Con Qt 5.3 siamo introducendo un primo sguardo su un nuovo strumento di creazione professionale disponibile sotto la versione di Qt Enterprise " – crsnplusplus