Thread View: maus.lang.tpascal
6 messages
6 total messages
Started by Heiko Bertsch
Mon, 06 Oct 1997 00:00
Out of memory / Heap overflow error
Author: Heiko Bertsch
Date: Mon, 06 Oct 1997 00:00
Date: Mon, 06 Oct 1997 00:00
21 lines
1970 bytes
1970 bytes
Ich habe 2 Probleme in TP und w�rde mich freuen, wenn mir einer, am besten per Mail, helfen k�nnte. 1.) Error 1: Out of memory Was kann ich machen, wenn diese Fehlermeldung beim Starten (eines gr��eren) Programmes erscheint. Soweit es geht habe ich schon Funktionen und Proceduren in Uniten ausgelagert. 2.) Error 203: Heap overflow error Ich versuche in meinem Programm ein Art Erdbeben zu erzeugen, indem ich den Bildschirm in 4 Teile aufteile und 4 mal per "getimage" und "putimage" den Bildschirminhalt immer um ein paar Pixel in eine Richtung bewege. Dabei st�rzt aber h�ufig das Programm mit dem oben genannten Fehler ab. Was soll man da tun?? Vielen dank im Voraus f�r eure Hilfe... Heiko [Homepage: http://www.YI.com/home/BertschHeiko] ...........................................................THE END.....
Re: Out of memory / Heap overflow error
Author: Stefan Fiedler
Date: Thu, 09 Oct 1997 00:00
Date: Thu, 09 Oct 1997 00:00
19 lines
1852 bytes
1852 bytes
On 6 Oct 1997 13:01:42 GMT, Heiko.Bertsch@t-online.de (Heiko Bertsch) wrote: >2.) Error 203: Heap overflow error >Ich versuche in meinem Programm ein Art Erdbeben zu erzeugen, indem ich >den Bildschirm in 4 Teile aufteile und 4 mal per "getimage" und >"putimage" den Bildschirminhalt immer um ein paar Pixel in eine Richtung >bewege. Dabei st�rzt aber h�ufig das Programm mit dem oben genannten >Fehler ab. Was soll man da tun?? Yeahhh! BGI rulezz! ;) War das nicht so, das GetImage jedesmal nen neuen Speicherblock reserviert? Wenn ja, d�rfte das Wohl der Grund sein, warum die 640k so schnell mit Bilddaten vollgeh�mmert sind. :) Warum machst du eigentlich das GetImage nicht nur einmal und l�sst dann die 4tel "beben" ? >Vielen dank im Voraus f�r eure Hilfe... >Heiko
Re: Out of memory / Heap overflow error
Author: Chris Franzen
Date: Fri, 10 Oct 1997 00:00
Date: Fri, 10 Oct 1997 00:00
25 lines
1948 bytes
1948 bytes
> 1.) Error 1: Out of memory > Was kann ich machen, wenn diese Fehlermeldung beim Starten (eines > gr��eren) Programmes erscheint. Soweit es geht habe ich schon Funktionen > und Proceduren in Uniten ausgelagert. Was sagt MEM? Target=DPMI oder real mode? Benutzt Du BP 7.0 oder 7.01? > 2.) Error 203: Heap overflow error > Ich versuche in meinem Programm ein Art Erdbeben zu erzeugen, indem ich > den Bildschirm in 4 Teile aufteile und 4 mal per "getimage" und > "putimage" den Bildschirminhalt immer um ein paar Pixel in eine Richtung > bewege. Dabei st�rzt aber h�ufig das Programm mit dem oben genannten > Fehler ab. Was soll man da tun?? Das kann 1000 Ursachen habe. Bestimmt machst du mehr GetMems oder News also FreeMems oder Disposes. Oder du bringst durch falsche Pointeroperationen die Heapverwaltung durcheinander. -- -- Chris, The Blast I
Re: Out of memory / Heap overflow error
Author: Stefan Fiedler
Date: Fri, 10 Oct 1997 00:00
Date: Fri, 10 Oct 1997 00:00
16 lines
1718 bytes
1718 bytes
On 10 Oct 1997 11:11:54 GMT, "Chris Franzen" <franzen@hq.vobis.de> wrote: >> 1.) Error 1: Out of memory >> Was kann ich machen, wenn diese Fehlermeldung beim Starten (eines >Target=DPMI oder real mode? >Benutzt Du BP 7.0 oder 7.01? Ich bin zwar auch fuer detaiilierte Fehlermeldungen, aber in *dem* Fall duerfte es wohl ziemlich unerheblich sein, ob die 7.0 oder 7.01... oder? ;) Soweit ich weis, sind die paar Bugs nicht beim Speichermanagment. >-- Chris, The Blast I Wow! :) ps: (nette anfrage) kannst deine sig mal richtig formatieren, damit sie mein newsreader rausschneiden kann? dank dir!
Re: Out of memory / Heap overflow error
Author: Deniz Savran
Date: Wed, 15 Oct 1997 00:00
Date: Wed, 15 Oct 1997 00:00
24 lines
1836 bytes
1836 bytes
Greetinx !
Martin Suefke wrote:
> Ja, so schwer ist das doch nicht, benutze Pointer, denen Du vorher mit
>
> "getmem" Speicher freiger�umt hast, und dann sollte das gehen... wenn
> das
> nicht hilft, dann lagere die Segmente doch in den XMS aus, das kostet
> aber
> etwas Zeit.
Segmente in den XMS auslagern ? Wenn es nicht allzu kompliziert ist,
w�re ich dir dankbar, wenn du mir schreiben k�nntest, wie das geht. Ich
schreibe n�mliche gerade mit einem Freund ein GrafikProgramm, und wir
k�mpfen auch immer mit dem verf�gbaren Speicher, da wir
eben nicht wissen, wie wir den XMS nutzen (die Onlinehilfe hat uns da
auch nicht weitergebracht).
THX
Ich
Re: Out of memory / Heap overflow error
Author: Christopher Eltschka
Date: Thu, 16 Oct 1997 00:00
Date: Thu, 16 Oct 1997 00:00
53 lines
3634 bytes
3634 bytes
Heiko Bertsch wrote: > > Ich habe 2 Probleme in TP und w�rde mich freuen, wenn mir einer, am > besten per Mail, helfen k�nnte. > > 1.) Error 1: Out of memory > Was kann ich machen, wenn diese Fehlermeldung beim Starten (eines > gr��eren) Programmes erscheint. Soweit es geht habe ich schon Funktionen > und Proceduren in Uniten ausgelagert. > Nun, zunaechst einmal ueberpruefen, wie effizient der Speicher vom Programm eingesetzt wird. Insbesondere auf zu grosse MemAlloc-Bloecke achten (z.B. fuer GetImage nicht mehr Speicher anfordern, als ImageSize angibt) und Speicherloecher ueberpruefen (d.h., dass nichts auf dem Heap zurueckbleibt, was nicht mehr benoetigt wird). Insbesondere auch darauf achten, dass die FreeMem-Groesse exakt mit der GetMem-Groesse uebereinstimmt. Ausserdem sollte auch der verfuegbare Speicher ueberprueft werden (z.B. mit dem DOS-Programm mem). Eventuell wird der Speicher von zu vielen residenten Programmen/Treibern aufgefressen. Nuetzt dies alles nichts, sollte das Programm Overlays benutzen. Das heisst, dass der Compiler bestimmte Units (die ihm per $O mitgeteilt werden) nicht ins .EXE schreibt, sondern in eine eigene Overlay-Datei, und sie nur bei Bedarf in den Hauptspeicher laedt. Dies eignet sich z.B. gut fuer solche Units, die nur sehr selten gebraucht werden (das Nachladen erfordert natuerlich Zeit). Der Speichergewinn ergibt sich daraus, dass i.w. nur fuer eine Unit Platz gelassen werden muss (wieviel genau, kann man kontrollieren), da weitere Units einfach in denselben Speicherplatz kommen. Naeheres zu Overlays steht im Handbuch. > 2.) Error 203: Heap overflow error > Ich versuche in meinem Programm ein Art Erdbeben zu erzeugen, indem ich > den Bildschirm in 4 Teile aufteile und 4 mal per "getimage" und > "putimage" den Bildschirminhalt immer um ein paar Pixel in eine Richtung > bewege. Dabei st�rzt aber h�ufig das Programm mit dem oben genannten > Fehler ab. Was soll man da tun?? > Nun, zunaechst einmal auf den Speicher schauen: Wieviele dieser Teilbilder muessen *gleichzeitig* gespeichert werden? Koennte man ein Viertelbild verschieben, und dann den Speicher fuer das naechste Viertelbild "recyclen", wenn man die Reihenfolge geschickt waehlt? Amsonsten gelten natuerlich auch die Regeln von oben. Insbesondere auf Speicherloecher ist hier besonders zu achten; wenn in einer Schleife laufend Speicher angefordert, aber nie freigegeben wird, kann der Heap sehr schnell zu Ende gehen...
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads