Czy QML jest tłumaczony na kod natywny w czasie kompilacji lub czy jest interpretowany w czasie wykonywania niemal w taki sam sposób, w jaki JavaScript jest uruchamiany w przeglądarce internetowej?Czy QML jest tłumaczony na kod natywny w czasie kompilacji lub czy jest interpretowany w czasie wykonywania tak, jak JavaScript jest uruchamiany w przeglądarkach internetowych?
Odpowiedz
AFAIK, nie wydają się być proste i szczegółowe wyjaśnienia w dokumentacji Qt, ale niektórzy hakerzy Qt try to explain it:
QML jest kompilowany do zoptymalizowanego kodu bajtowego podobny strumień i Wyrażenia JavaScript przechodzą przez zoptymalizowany ewaluator dla prostych wyrażeń .
Jest to również związane zadanie QTBUG QtQuick startup time needs to be improved; cache compiled QML between runs
Moje zrozumienie jest, że status QML nie została uregulowana w całości i inżynierowie nie deklaruje to naprawić, więc mają swobodę w celu poprawy w przyszłości.
ATM, najlepiej jest połączyć C++ z QML, mając całą logikę aplikacji w C++ i prezentację w QML, ale idealnie podzielić na mniejsze pliki QML, a nie na pojedynczy duży plik QML.
Jest duży difference between compiled languages and interpreted languages. A QML document is interpreted by the QML runtime. W pewnym sensie można powiedzieć, że jest wykonywany jak JavaScript.
The QML runtime includes a QML engine, JavaScript engine, and mechanism to bind to the Qt Framework.
Z Qt 5.3 i licencją dla przedsiębiorstw, istnieje sposób, aby ją skompilować.
http://doc.qt.digia.com/QtQuickCompiler/
Jest to przydatne dla iOS gdzie Apple nie umożliwiają generowanie kodu JIT.
- 1. Czy jest możliwe przeciążenie funkcji w czasie wykonywania?
- 2. Jak ustalić, czy metoda jest asynchroniczna w czasie wykonywania
- 3. Czy obsługa JavaScript jest dostępna tylko w przeglądarkach internetowych?
- 4. Jak sprawdzić, czy kontrola jest w czasie projektowania, czy nie?
- 5. Jak wykryć, czy typ jest wyrażeniem lambda w czasie kompilacji?
- 6. TypeScript - Moduł jest niezdefiniowany w czasie wykonywania
- 7. Sprawdź, czy widok jest ładowany w czasie wykonywania
- 8. Czy wartość inicjalizacji zostanie obliczona w czasie kompilacji lub w czasie wykonywania?
- 9. Sprawdź, czy iso_c_binding jest dostępne w czasie kompilacji
- 10. Umowy na kod w czasie wykonywania
- 11. Jak sprawdzić, czy jestem w czasie wykonywania lub projektu?
- 12. Czy można oglądać zmienne w czasie wykonywania?
- 13. Czy "strlen()" w czasie kompilacji działa efektywnie?
- 14. Określić wykonanie `constexpr` - podczas kompilacji lub w czasie wykonywania?
- 15. Jak dokładnie interpretowany jest JavaScript?
- 16. Jak zidentyfikować metodę protokołu jest opcjonalna w czasie wykonywania?
- 17. W czasie projektowania pakiet uri jest ważny, ale nie w czasie wykonywania?
- 18. Czy wartości wyliczeniowe są rozwiązywane w czasie preprocesingu lub w czasie kompilacji?
- 19. czy można zastąpić metodę w czasie wykonywania?
- 20. Preferowany sposób sprawdzenia, czy aplikacja WWW asp.net jest w trybie debugowania w czasie wykonywania?
- 21. Jak mogę sprawdzić w czasie kompilacji, czy projekt jest programem, czy biblioteką?
- 22. C++: disambiguate ten kod w czasie kompilacji?
- 23. Rozmiar tablicy w czasie wykonywania bez przydzielania dynamicznego jest dozwolony?
- 24. Jak ustalić, czy kod jest wykonywany jako skrypt lub funkcja?
- 25. Odlewanie do klasy, która jest określana w czasie wykonywania
- 26. Jak odczytać zawartość pliku w czasie wykonywania? Szef kuchni czyta w czasie kompilacji
- 27. Czy mogę zmienić ustawienia Silverlight poza przeglądarką w czasie wykonywania?
- 28. Czy możliwe jest sprawdzanie w czasie kompilacji w trybie ciąg do mapy?
- 29. przesunięcie w czasie kompilacji
- 30. Czy mogę wstawić kolumnę w widoku listy w czasie wykonywania?
JavaScript w przeglądarce jest rzadko kompilowany. Zwykle jest kompilowany just-in-time (JIT). – delnan