QPlainTextEdit使用的内存大约是其文本的6倍

2024-04-20 13:18:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个小程序,在这里我将1000000个字符转储到QPlainTextEdit中。当我在linux中查看SystemMonitor以查看我的内存时,我看到了90.8m的内存!文本应仅为1M左右。为什么QPlainTextEdit使用了这么多内存

我使用的是PySide1.2.4和QtCore版本4.6.2

import sys
from PySide.QtGui import *
from PySide.QtCore import *

class MainWindow(QPlainTextEdit):
    def __init__(self):
        super(MainWindow, self).__init__()

        self.show()
        self.lines = ''
        for i in range(100000):
            self.insertPlainText('0123456789\n')


if __name__ == '__main__':
    app = QApplication(sys.argv)
    mainWin = MainWindow()
    ret = app.exec_()
    sys.exit( ret )

enter image description here


1条回答
网友
1楼 · 发布于 2024-04-20 13:18:30

因为你的程序使用的内存不仅仅是文本。您可以运行此代码,然后检查内存:

import sys
from PySide2 import QtWidgets
app = QtWidgets.QApplication(sys.argv)
w = QtWidgets.QWidget()
w.show()
ret = app.exec_()

在我的机器中,大约需要30MB的内存。它只是一个空的小部件,什么也不做。如果我运行你的代码,它甚至需要比你大110MB

你们必须知道,QWidget携带了很多你们看不到的元数据,但它们总是存在的

相关问题 更多 >