删除QTApp中的所有QPushButtons后,内存未完全释放

时间:2016-09-22 05:17:02

标签: qt memory window ram qpushbutton

我正在创建一个包含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;
}
  1. 最初内存为2.0 mb
  2. 添加内存后增加到49.3 mb
  3. 删除内存后减少到4.1 mb
  4. 是否有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

0 个答案:

没有答案