我正在创建一个包含QPushButtons
的程序。问题是当我添加QPushButtons
内存(RAM)正在增加但是当我删除所有添加的按钮时,内存未完全释放。
void TempTest ::addSLOT()
{
li= new QList<QPushButton*>;
for(int i=0;i<50000;i++)
{
QPushButton *p = new QPushButton;
p->setText("sample");
p->setFixedSize(100,100);
li->append(p);
}
}
void TempTest ::removeSLOT()
{
while(li->count())
{
QPushButton*p= li->at(0);
li->removeAt(0);
delete p;
}
delete li;
}
是否有2.1 MB的RAM从未发布过?
我在Windows任务管理器中检查Ram,那里有Memory列。 我在其他一些项目中遇到了Ram问题,为什么我会编写这个示例代码来检查是否所有内存都在释放。
此外,如果我重复这个过程 -
再次添加和删除按钮 - 4.4 mb
再次添加和删除按钮 - 4.9 mb
再次添加和删除按钮 - 4.6 mb
再次添加和删除按钮 - 4.4 mb
再次添加和删除按钮 - 5.4 mb
再次添加和删除按钮 - 4.9 mb
再次添加和删除按钮 - 4.6 mb
我们可以清楚地看到内存的变化,但它永远不会回到2.0 mb