2017-01-29 19 views
9

Qt 5.8 được cho là đi kèm với việc sử dụng tùy chọn trước trình biên dịch qtquick, thay vào đó nó có một trình biên dịch, một tính năng được kích hoạt theo mặc định và lưu trữ các tệp QML được biên dịch trên đĩa để cải thiện hiệu suất khởi động và giảm mức sử dụng bộ nhớ.Có thể tắt bộ nhớ đệm QML trong Qt 5.8 cho một dự án cụ thể không?

Tuy nhiên, tính năng này đến với seriousbugs làm giảm đáng kể hoặc trong trường hợp của tôi hoàn toàn phủ nhận lợi ích của nó, vì tôi không gặp vấn đề với thời gian khởi động và thử nghiệm không tiết lộ bất kỳ cải thiện mức sử dụng bộ nhớ nào bất kì cái gì.

Vì vậy, những gì tôi muốn làm là chọn không tham gia tính năng đó trong dự án của mình, nhưng dường như tôi không tìm thấy cách thực hiện điều đó. Quay lại Qt 5.7.1 không phải là một lựa chọn vì dự án của tôi dựa trên các tính năng mới khác, được giới thiệu với 5.8.

Trả lời

10

Thêm QML_DISABLE_DISK_CACHE (đặt thành 1) vào biến môi trường của bạn. Bạn có thể làm điều đó bên trong ứng dụng của mình qua qputenv - đặt nó ở đâu đó trong main trước khi tải nội dung QML.

3

Tín dụng cho hoa cúc để thông báo cho chúng tôi biến môi trường, nhưng qputenv() chỉ mất một tham số giá trị QByteArray, vì vậy 1 sẽ không hoạt động.

Hai tùy chọn mà làm việc:

qputenv("QML_DISABLE_DISK_CACHE", "1"); // or 
qputenv("QML_DISABLE_DISK_CACHE", "true"); 

thành công này vô hiệu hóa bộ nhớ cache và ngăn ngừa các lỗi liên quan từ biểu hiện.

Các vấn đề liên quan