小编Tyl*_*r M的帖子

QML 内存泄漏发送 XMLHttpRequest

创建 的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。这可以通过更改为 …

javascript memory qt memory-leaks qml

6
推荐指数
1
解决办法
328
查看次数

这是 QML 中的最小可行 TreeView 模型吗?

我正在制作一个包含三个项目的折叠列表:“嘿”、“什么”和“上?”。我想把它放到树视图中。我知道这个列表永远只包含这三个项目。因此,我想知道如何将这些项目“嵌套”在一起。

我知道有一些敏捷系统的实现支持添加和删除父/子对象、查找索引......强大的模型。但是,我实际上只需要在可展开/可折叠视图中显示这些项目。以下是我阅读的与 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)

treeview qt qml qt5.9

2
推荐指数
1
解决办法
1467
查看次数

标签 统计

qml ×2

qt ×2

javascript ×1

memory ×1

memory-leaks ×1

qt5.9 ×1

treeview ×1