QML được dịch thành mã gốc vào thời gian biên dịch hay nó được giải thích tại thời gian chạy gần như cách JavaScript được chạy trong trình duyệt web?QML được dịch thành mã gốc vào thời gian biên dịch hay nó được giải thích khi chạy JavaScript theo cách nào đó trong trình duyệt web?
Trả lời
AFAIK, có vẻ như là không có lời giải thích thẳng và chi tiết trong tài liệu Qt, nhưng một số hacker Qt try to explain it:
QML được biên dịch để một dòng bytecode giống như tối ưu hóa và Các biểu thức JavaScript chuyển qua một bộ đánh giá được tối ưu hóa cho các biểu thức đơn giản .
Ngoài ra còn có liên quan đến nhiệm vụ QTBUG QtQuick startup time needs to be improved; cache compiled QML between runs
sự hiểu biết của tôi là tình trạng QML chưa được giải quyết hoàn toàn và kỹ sư không khai báo nó cố định, vì vậy họ có tự do để cải thiện nó trong tương lai.
ATM, lời khuyên tốt nhất là trộn C++ với QML, có tất cả logic ứng dụng trong C++ và bản trình bày trong QML, nhưng được chia thành các tệp QML nhỏ hơn, chứ không phải trong một tệp QML lớn.
Có một số lớn difference between compiled languages and interpreted languages. A QML document is interpreted by the QML runtime. Trong một nghĩa nào đó, bạn có thể nói rằng nó được thực hiện như JavaScript.
The QML runtime includes a QML engine, JavaScript engine, and mechanism to bind to the Qt Framework.
Với Qt 5.3 và giấy phép doanh nghiệp, thực sự có một cách để nó được biên dịch trước.
http://doc.qt.digia.com/QtQuickCompiler/
này rất hữu ích dành cho iOS nơi mà Apple không cho phép sinh mã JIT.
JavaScript trong trình duyệt web hiếm khi được biên dịch. Thông thường nó được biên dịch chỉ trong thời gian (JIT). – delnan