Предварительная компиляция QML в байт-код, возможно ли это?

Я пытаюсь оптимизировать некоторый код QML для скорости и памяти.

Я знаю, что можно создать файл ресурсов Qt (*.rcc), чтобы уменьшить файловое пространство *.qml. Хотя у меня нет данных о том, какое улучшение/сжатие достигается на этом шаге.
Узнайте, как это сделать, в Компиляция библиотек и ресурсов Qt/QML

Но я также знаю, что это было в некоторые люди составляют дорожную карту перед предварительной компиляцией файлов QML в байт-код, поэтому этого шага можно избежать во время выполнения.

Итак, кто-нибудь знает, можно ли предварительно скомпилировать QML в любой выпущенной версии Qt? или в любом запланированном?


person kikeenrique    schedule 12.06.2013    source источник
comment
QML в основном представляет собой JavaScript/CSS. Существуют инструменты сжатия HTML/CSS/JavaScript. По сути, они минимизируют имена переменных и удаляют пробелы. Вы можете повторно использовать эти инструменты для QML. Например, уплотнитель CSS. Поскольку вашим критерием является размер, использование компрессора лучше, чем байт-код. Например, LZO, LZMA, GZIP и т. д. Существует JIT-версия движка JavaScript, но это отличается для каждого процессора.   -  person artless noise    schedule 13.06.2013
comment
Чтобы было понятно на случай, если я плохо объяснил, цель заключается не только в размере, но и в сокращении времени загрузки. @artlessnoise Вы пробовали какой-нибудь инструмент? Это было на 100% успешно?   -  person kikeenrique    schedule 17.06.2013
comment
Я не пробовал ничего из этого с QML. Это всего лишь много хорошо известных инструментов для уменьшения размера HTML/CSS/Javascript. Если вашей целью является скорость, то только загрузчик Qt QML может сделать это быстрее; этого не существует афаик.   -  person artless noise    schedule 17.06.2013
comment
Насколько я знаю, использование Javascript должно быть минимальным и не должно использоваться для кода, зависящего от производительности. Если вас беспокоит производительность QML, ее можно профилировать с помощью профилировщика QML и внести соответствующие изменения.   -  person RajaRaviVarma    schedule 16.07.2013
comment
QML — это не просто javascript/CSS. Он содержит javascript.   -  person Timmmm    schedule 22.07.2014


Ответы (2)


Предварительная компиляция QML в байт-код, возможно ли это?

К сожалению, на данный момент это невозможно. Кроме того, это довольно большой запрос функции, поэтому, вероятно, не будет поддерживаться в ближайшее время. Конечно, не в грядущей версии 5.2, для которой у нас заморозка функций через неделю, но, скорее всего, даже не в версии 5.3 к следующему лету и т. д.

Я только что кратко обсудил эту проблему с одним из разработчиков, так что вам, возможно, придется пока с этим жить. Я также спрашивал о создании отчета jira для отслеживания этого, но мне сказали, что такие большие запросы функций не отслеживаются там, как переписывание движка v4 для декларативного репозитория в недалеком прошлом.

person lpapp    schedule 16.09.2013

С Qt 5.3 возможно:

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

«Компилятор Qt Quick Compiler — это надстройка для разработки приложений Qt Quick, которая позволяет компилировать исходный код QML в окончательный двоичный файл. При использовании этой надстройки время запуска приложения значительно сокращается, и вам больше не нужно развертывать .qml вместе с приложением».

person crsnplusplus    schedule 27.05.2014
comment
Насколько я знаю, требуется корпоративная лицензия. Ознакомьтесь с пресс-релизом QT 5.3 (blog.qt .digia.com/blog/2014/05/20/qt-5-3-релиз) - person kikeenrique; 27.05.2014
comment
вы правы, так говорят: с Qt 5.3 мы представляем первый взгляд на новый профессиональный инструмент сборки, доступный в версии Qt Enterprise - person crsnplusplus; 27.05.2014