AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Zu wenig Arbeitsspeicher

Ein Thema von Ines · begonnen am 27. Jan 2010 · letzter Beitrag vom 29. Jan 2010
Antwort Antwort
Seite 2 von 2     12
Ines

Registriert seit: 22. Aug 2006
Ort: Augsburg
96 Beiträge
 
Delphi 2009 Enterprise
 
#11

Re: Zu wenig Arbeitsspeicher

  Alt 27. Jan 2010, 16:30
Hallo Medium,

mein Programm arbeitet mit Images. Der Nutzer kann ein Bild laden - darin zeichnen - und dieses Bild dann im Befund ausgeben.
Ich verwende die Befehle Image.Picture.Bitmap = nil, Image.Picture = nil, Image.Picture.Bitmap.FreeImage und Image.Picture.Bitmap.ReleaseHandle um das Image zu leeren und somit Speicherplatz zu sparen.

Aber nicht nur mein Programm arbeitet mit Bildern, auch 2 der anderen Programme (sog. Viewer) sind Bildbearberarbeitungs- und betrachtungsprogramme.

Ich suche noch nach einer Möglichkeit, daß mein Programm einigermaßen ordentlich beendet werden kann, wenn dieser Fehler auftritt. Momentan funktioniert weder mein noch die anderen Programme, auch der Taskmanager mag nicht.

Gruß
Ines
Ines
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.014 Beiträge
 
Delphi 12 Athens
 
#12

Re: Zu wenig Arbeitsspeicher

  Alt 27. Jan 2010, 16:49
Startet den Taskmanager schon im Voraus und laßt ihn im Hintergrund laufen.
Das sollte die Möglichkeit erhöhen, daß man ihn dann noch nutzen kann, wenn es denn so weit ist.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#13

Re: Zu wenig Arbeitsspeicher

  Alt 27. Jan 2010, 16:58
Zitat von Ines:
Momentan funktioniert weder mein noch die anderen Programme, auch der Taskmanager mag nicht.
Hört sich für mich nach einem Ressourcen (GDI/User/...) Problem an. Hier hat Windows noch nicht die optimale Trennung zwischen Prozessen (auch wenn es mit jeder Windows-Version besser wird) so das ein Amok-Laufendes Programm alle anderen Programme "in den Abgrund reist".

Also Taskmanager an, Spalten "Handles", "BENUTZER-Objekte" und "GDI-Objekte" eingeblendet und schauen wo hier Zahlen >> 1000 auftreten. Dieser Prozess ist dann der Schuldige. Du kannst hier eigentlich gar nix mehr machen da selbst ein ShowMessage u.U. fehl schlägt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#14

Re: Zu wenig Arbeitsspeicher

  Alt 29. Jan 2010, 17:27
Von Image.Picture.Bitmap.ReleaseHandle lass mal die Finger.
Damit erreichst du genau das Gegenteil von Speicher sparen.

Du teilst der Bitmap damit lediglich mit, das du ihr das GDI-Handle auf die eigentlichen Bilddaten abnimmst und dich um dessen Freigabe (inclusive GDI-Speicher) später selbst kümmerst. Und das geschieht vermutlich nicht...

Statt dessen einfach:
Image.Picture.Bitmap := nil;
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz