Einzelnen Beitrag anzeigen

Schorschi5566

Registriert seit: 6. Feb 2006
197 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#13

AW: EOutOfResources erzeugt Speicherleck

  Alt 5. Dez 2010, 18:03
Das ist ja gar nicht das Problem. Klar kracht das (fast) permanent, wenn viele so große Grafiken verarbeitet werden.

Aber der Mechanismus bei Speichermangel die Threads zu killen und sie langsam wieder "auferstehen" zu lassen funktioniert ja. Es sind nicht nur derart große Grafiken, sondern auch viele mit kleineren Formaten. Da wäre es einfach doof, die Threads nicht wieder zu starten. Natürlich nicht alle auf einmal.

Die Leckage scheint wohl eher daher zu kommen, dass EOutOfResources irgendwo direkt geraised wird, was ja, laut Hilfe, für EHeapExceptions nicht erlaubt ist. Dabei entsteht pro Exception offenbar eine neue Instanz von EOutOfResources, was eigentlich nicht sein soll. Freigegeben wird aber nur die Urinstanz von EOutOfResources.

Mein Code feuert keine EOutOfResources, also muss es wohl TJpgImage, TBitmap oder TBitMap32 sein.

In meiner Exceptionbehandlung habe ich ja wohl kaum eine Chance, das zu beheben. Oder doch?

Bleibt die Frage, wie man korrekt auf EOutOfResources reagieren kann ohne eine Speicherleck zu erzeugen.
Uwe
"Real programmers can write assembly code in any language." - Larry Wall
Delphi programming rocks

Geändert von Schorschi5566 ( 5. Dez 2010 um 18:06 Uhr)
  Mit Zitat antworten Zitat