2012-02-25 10 views
13

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?

+0

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

Trả lời

4

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.

3

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.