Подтвердить что ты не робот

Является ли QML переведенным в собственный код во время компиляции или интерпретируется во время выполнения, как работает JavaScript в веб-браузерах?

Является ли QML переведенным в собственный код во время компиляции или интерпретируется во время выполнения почти так, как JavaScript запущен в веб-браузере?

4b9b3361

Ответ 1

AFAIK, похоже, нет прямого и подробного объяснения в документации Qt, но некоторые хакеры Qt попытаются объяснить это:

QML компилируется в оптимизированный поток, похожий на байт-код, и Выражения JavaScript проходят через оптимизированный оценщик для простых выражения.

Также есть связанная задача QTBUG Необходимо увеличить время запуска QtQuick; кеш скомпилировал QML между прогонами

Я понимаю, что статус QML не был полностью урегулирован, и инженеры не заявляют об этом, поэтому у них есть свобода для его улучшения в будущем.

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

Ответ 2

С Qt 5.3 и корпоративной лицензией, на самом деле есть способ, чтобы он был предварительно скомпилирован.

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

Это полезно для iOS, где Apple не позволяет создавать JIT-код.

Ответ 3

Существует большая разница между скомпилированными языками и интерпретируемыми языками. Документ QML интерпретируется с помощью среды выполнения QML. В некотором смысле вы можете сказать, что он выполнен как JavaScript.

Время выполнения QML включает механизм QML, механизм JavaScript и механизм для привязки к Qt Framework.