Qt内存管理。什么';怎么了?
我有一个关于Qt内存泄漏的问题 我有一个带2个按钮的Qmain窗口 第一个按钮点击信号:Qt内存管理。什么';怎么了?,qt,Qt,我有一个关于Qt内存泄漏的问题 我有一个带2个按钮的Qmain窗口 第一个按钮点击信号: m_label = new QLabel(this); QPixmap pix(this->size()); QPainter painter; painter.begin(&pix); QImage img("1.png"); painter.drawPixmap(this->rect(), QPixmap::fromImage(img)); m_label->setPixm
m_label = new QLabel(this);
QPixmap pix(this->size());
QPainter painter;
painter.begin(&pix);
QImage img("1.png");
painter.drawPixmap(this->rect(), QPixmap::fromImage(img));
m_label->setPixmap(pix);
painter.end();
delete m_label;
Secont按钮点击信号:
m_label = new QLabel(this);
QPixmap pix(this->size());
QPainter painter;
painter.begin(&pix);
QImage img("1.png");
painter.drawPixmap(this->rect(), QPixmap::fromImage(img));
m_label->setPixmap(pix);
painter.end();
delete m_label;
当我启动测试应用程序时,分配的内存约为11900KB
当我点击第一个按钮时,应用程序分配的内存约为12450KB
当我点击第二个按钮时,我得到了大约12250KB的分配内存
为什么我没有得到同样的11900KB?这是个漏洞吗
因此,如果要编写以下代码:
QImage img("1.png");
QImage img1("1.png");
QImage img2("1.png");
QImage img3("1.png");
QImage img4("1.png");
QImage img5("1.png");
QImage img6("1.png");
QImage img7("1.png");
QImage img8("1.png");
QImage img9("1.png");
然后,分配的内存会增加,但不会减少。为什么?如何清除内存泄漏
你是如何测量内存消耗的?…在img…img9的情况下,你预计它什么时候会减少?(但一般的测量问题更为相关)此外,我认为Qt缓存了一些数据,同时还有一个事实,即通过创建对象触发的许多内存结构通常只会增长,而不会经常收缩(例如,子对象列表)。