objeto de exclusão de c ++ não libera memória [duplicado]

Esta pergunta já tem uma resposta aqui:

Por que a memória do meu programa não é liberada? 2 respostas

Tenho o seguinte código que criei para verificar como a memória pode alocar e liberar usando qt e c ++

Plataforma: Linux, Ubunut 16.04

testmemeory.h

#include <QObject>

class testMemeory : public QObject
{
    Q_OBJECT
public:
    explicit testMemeory(QObject *parent = nullptr);
    void freeMEm();
    char* str;

};

testmemeory.cpp

testMemeory::testMemeory(QObject *parent) : QObject(parent)
{
        str = new char [30000];
}

void testMemeory::freeMEm(){
    delete [] str;
}

Esta é a matriz que usei para armazenar o objet

std::vector<testMemeory*> testList;

E estou alocando a memória usando

void MainWindow::allocateMemory()
{
    for(int i=0;i<50000;i++){
        testMemeory *t = new testMemeory();
        testList.push_back(t);
    }

    qDebug()<<"Memory allocated..";
}

E liberando memória usando

void MainWindow::relaseMemory()
{
    for(int i=0;i<testList.size();i++)
        testList.at(i)->freeMEm();

    qDeleteAll(testList);
    testList.clear();

    qDebug()<<"Memory freed..";

}

Quando executo a alocação de memória, a RAM usada para o aplicativo aumentou de 150 MB para cerca de 350 MB, onde, como se a função relaseMemory () fosse chamada, a RAM ainda tem 350 MB e não reduzia para 150 MB

Qual seria a razão

questionAnswers(1)

yourAnswerToTheQuestion