List & Label 13 "out of Memory or heap corrupted&qu

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

List & Label 13 "out of Memory or heap corrupted&qu

Beitrag von AUGE_OHR »

hi,

was heist : "out of memorey or heap corrupted" ?

es passiert bei der Preview bei 2GB RAM (+ 2x Swap a 4GB)
bei ca. 59% wenn ich versuchen mein Xbase++ Memo mit
ca. 4500 Record und 44MB Bitmaps (192x144x24p).

Windows Handle 7970 -> 8271 -> 8343
Windows RAM 323MB -> 360MB -> 1130MB -> crash

wenn ich nun die Preview "disable" erreicht er ca. 65% bei 1160MB
aber er geht erst bis 100% weiter bevor er crashed ?

was kann ich tun damit ich den vollen Report (ca. 500 Seiten) bekomme ?

gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo Jimmy,

Ich habe bei mir immer nur 10 Seiten in grafischen Segmenten um den Speicherplatz nicht zu überfordern, wobei ich damals noch Win98 berücksichtigen musste.

Gerade wenn das Programm auch unter Citrix laufen soll mußt du mit den GDI Resourcen sparsamer umgehen, wobei 500 Seiten mit Bitmap-Bildern sicher nicht die beste Idee für eine Preview sind.

Die einzige Lösung die mir einfällt ist Speicherplatz sparen indem z.B. jede Seite einzeln erzeugt wird, der interne Speicher der XbpBitmaps jeweils mit der akutell nötigen Bitmap geladen wird und danach freigegeben wird.

Ich vermute dass dies LL intern auch so macht wenn man die Bitmaps als Dateien angibt.
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Beitrag von AUGE_OHR »

hi,

so nun hab ich 588 Seiten im L&L Report. Das ging aber jetzt nur weil
ich so lange die Bitmap Size vor der übergabe an L&L verkleinert habe
bis es in den 2GB Speicher passte.
In der verwendeten "Memo-Bitmap-Handle" Routine gibt es evtl. noch
einen Fehler sodas ich den "doppelten" Speicherverbrauch habe. Die
ich also die Routine von Till gegen die neue Msg von Andreas Gehrs-Pahl
vergleichen wo der Unterschiede ist.

Nun ist es mir klar das wenn ich im RAM ein Bitmap erzeuge das es
Speicher braucht. Nun "druckt" L&L aber doch immer nur eine Zeile
d.h. ich müsste "eigendlich" nur die Bitmaps der einen Zeile haben
und "könnte" die vor der nächsten Zeile "löschen" ...
... und irgendwie erzeugt L&L schon bei der Preview massiv "temporäre"
*.EMF Dateien wo ich die Bilder auch "sehe" ...

jemand eine Idee wie/wo ich die "erzeugten" Bitmaps lösche ?

gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

AUGE_OHR hat geschrieben: Nun "druckt" L&L aber doch immer nur eine Zeile
d.h. ich müsste "eigendlich" nur die Bitmaps der einen Zeile haben
und "könnte" die vor der nächsten Zeile "löschen" ...
1. gedruckt wird unter Windows im GUI Modus immer seitenweise, also er muss alles auf einer Seite vorhalten.

2. Es ist möglich (ich weiß es aber nicht), dass entweder L&L im preview oder aber deine Handle Funktion eine Kopie vom XbpBitmap Objekt anlegt (das würde den doppelten Verbrauch erklären). In diesem Falle könntest du nach der Übergabe einer Seite die XbpBitmaps für neue Bilder wiederverwenden.
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Beitrag von AUGE_OHR »

hi,
AUGE_OHR hat geschrieben: jemand eine Idee wie/wo ich die "erzeugten" Bitmaps lösche ?
Problem gelöst sie Devcon2007 REP-02 Thread

gruss by OHR
Jimmy
Antworten