【问题标题】:QPlainTextEdit using around 6 times the memory of it's textQPlainTextEdit 使用大约 6 倍的文本内存
【发布时间】:2020-06-09 02:06:24
【问题描述】:

我在这里有一个小程序,我将 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 )

【问题讨论】:

    标签: python qt pyqt4 pyside


    【解决方案1】:

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

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

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

    你要知道,QWidget 携带了很多你看不到的元数据,但它们始终存在。

    【讨论】:

      猜你喜欢
      • 2014-12-23
      • 1970-01-01
      • 2022-01-06
      • 2012-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-13
      • 2020-10-06
      相关资源
      最近更新 更多