QArtikel* Artikel;
for(int i=0; i < Query->size(); i++)
{
Artikel = new QArtikel(Query->value(0).toString(), "Dicom-Nr");
Artikel->LoadFromDB();
Query->next();
delete(Artikel);
}
Nun besteht folgendes Problem. Die Schleife wird so einige 1000 Mal durchlaufen. Dabei wächst der Speicherbedarf des Prozesses immer weiter an. Bei 10000 Durchläufen etwa 10MByte. Ich habe die Klasse QArtikel bereits untersucht. Interessant ist folgendes. Wenn ich debugge fällt auf, dass der Speicherbedarf beim Ausführen der Funktion LoadFromDB() zunimmt. Springe ich beim Debuggen in die Funktion LoadFromDB() rein und "suche" die Fehlerstelle, dann nimmt der Speicherbedarf nicht zu. Das Debuggen behebt also im Prinzip das Problem. Hat irgendjemand eine Idee, wo hier Speicher verloren geht. Habe schon daran gedacht, dass hier irgendwas gethreaded wird aber laut Task-Manager geschieht nichts.
Viel zu wenig Code um auch nur einen Ansatz zu haben. Minimal kompilierbares Beispiel wäre schon interessant...
Und unter Linux -> valgrind benutzen.
Abgesehen davon - warum Artikel erst mit new erzeugen nur um es zwei Zeilen später wieder zu zerstören? Da würde auch ein Objekt auf dem Stack reichen...