Làm việc trên một dự án Qt kích thước trung bình mà chúng tôi nhận thấy, mức tiêu thụ bộ nhớ cao đáng ngạc nhiên khi không có nhiều hoạt động trên màn hình. Nỗ lực của tôi để tìm một loại memleak dẫn tôi đến macro CREATE_QML_OBJECT, trong đó các đối tượng thể hiện qml được tạo ra. Sau khi xóa tất cả các phần tử ui tùy chỉnh khỏi tệp qml đã tải và chỉ để lại bốn thứ cơ bản tôi nhận đượcQt Sử dụng bộ nhớ nhanh
Rectangle {
Button {}
CheckBox {}
Slider {}
TextField {}
}
Và điều này tiêu thụ khoảng ~ 1-1,5 MB.
Tôi đã có một cái nhìn tại dự án trình diễn QtQuick và điều tương tự nó có:
Gallery demo. Chỉ cần một loạt các điều khiển, 100 MB khi khởi động.
Same game demo. Trò chơi đơn giản, sau 5 phút chơi 256MB đã biến mất.
Tôi thực sự ngạc nhiên bởi thực tế là một ứng dụng QtQuick QML đơn giản có thể ăn lượng bộ nhớ khổng lồ. Có ai biết những gì gây ra phân bổ này và có cách nào để quản lý nó?
Mọi trợ giúp sẽ được đánh giá cao.
liên kết liên quan, đã không tìm thấy một câu trả lời có
Memory footprint of QML applications
Performance Considerations And Suggestions
Thật lạ, các nhà phát triển KDE cho biết họ giảm mức tiêu thụ bộ nhớ với mức sử dụng QML cao hơn. – QtRoS
Để gọi QML "bộ nhớ hog" sẽ là một lời khen. Nó còn tồi tệ hơn nhiều ... – dtech