我有一个小程序,在这里我将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 )
因为你的程序使用的内存不仅仅是文本。您可以运行此代码,然后检查内存:
在我的机器中,大约需要30MB的内存。它只是一个空的小部件,什么也不做。如果我运行你的代码,它甚至需要比你大110MB
你们必须知道,QWidget携带了很多你们看不到的元数据,但它们总是存在的
相关问题 更多 >
编程相关推荐