QPlainTextEdit使用的文本存储量约为文本的6倍

问题描述 投票:0回答:1

我这里有一个小程序,我将1,000,000个字符转储到QPlainTextEdit中。当我在Linux中查看SystemMonitor来查看内存时,看到的内存为90.8 M!文字只能在1M左右。为什么QPlainTextEdit使用那么多的内存?

我正在使用PySide 1.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

python qt pyqt4 pyside
1个回答
0
投票

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

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

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

您必须知道,QWidget带有很多看不见的元数据,但它们始终存在。

© www.soinside.com 2019 - 2024. All rights reserved.