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
List & Label 13 "out of Memory or heap corrupted&qu
Moderator: Moderatoren
- brandelh
- Foren-Moderator
- Beiträge: 15695
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
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.
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
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
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
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
- brandelh
- Foren-Moderator
- Beiträge: 15695
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
1. gedruckt wird unter Windows im GUI Modus immer seitenweise, also er muss alles auf einer Seite vorhalten.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" ...
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
Hubert