创建 的new实例XMLHttpRequest和调用会send()导致垃圾收集器无法清除的内存使用量,也无法清除gc(). 调用delete对象也不会清除内存。
import QtQuick 2.12
import QtQuick.Window 2.12
Window {
visible: true
width: 640
height: 480
Component.onCompleted: {
for(var i = 0; i < 100000; i++) {
console.log("Send request " + i)
var xhttp = new XMLHttpRequest
xhttp.open('get', 'someurl')
xhttp.send()
delete xhttp
}
gc() //why won't this clean the instances of XMLHttpRequest???
}
}
Run Code Online (Sandbox Code Playgroud)
如果我从不打电话,xhttp.send()那么我就没有任何内存泄漏。垃圾收集开始,因为没有对 的引用var xhttp并且内存被释放。我想也许垃圾收集器没有触发,但gc()也不会清除内存。
这个 MRE 将运行 100,000 次迭代并在内存中保存大约 500MB。这可以通过更改为 …
我正在制作一个包含三个项目的折叠列表:“嘿”、“什么”和“上?”。我想把它放到树视图中。我知道这个列表永远只包含这三个项目。因此,我想知道如何将这些项目“嵌套”在一起。
我知道有一些敏捷系统的实现支持添加和删除父/子对象、查找索引......强大的模型。但是,我实际上只需要在可展开/可折叠视图中显示这些项目。以下是我阅读的与 C++ 和 QAbstractItemModels 相关的内容:
这是使用模型实现树视图的最简单可行的代码:
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 1.4
Window {
id: mywindow
visible: true
width: 640
height: 480
TreeView {
id: treeview
anchors.fill: parent
TableViewColumn {
title: "Phrase"
role: "phrase"
}
model: phraseModel
}
ListModel {
id: phraseModel
ListElement { phrase: "Hey"; }
ListElement { phrase: "What's"; }
ListElement { phrase: "Up?"; }
}
} …Run Code Online (Sandbox Code Playgroud)