German Memory Problem mit VGA Auflösung

Paulsche

Well-Known Member
Licensed User
Longtime User
Ich habe mein Programm mit fgChangeToVGA von der fgControl.dll von Filippo
auf VGA-Auflösung umgestellt, was auch Prima funktioniert.
Wie ich nun bemerkt habe, bekomem ich manchmal beim Starten ein "out og Memory" , nach einem Softreset gehts dann wieder.

Ich habe nun den Speicherverbrauch jeweils vor und nach dem Start
verglichen.

Bei der Version in QVGA (compailiert mit force QVGA) beträgt der Verbrauch 6,7MB.
In VGA (compailiert mit Device EXE) beträgt der Verbrauch 14,3 MB.

Ich nutze auch Linechart + Barchart aus der Charts.dll.

Gibt es eine Möglichkeit den Speicherverbrauch zu optimieren ?
 

klaus

Expert
Licensed User
Longtime User
Hallo Paulsche,
- Benützt Du auch BitmapEx und DrawerEx Objekte aus der ImageLibEx Library ? Da gibt es nähmlich ein Problem, wenn eine BitmapEx einzweites mal mit BitmapEx.New1 neu definiert wird deren Scheicherplatz nicht frei gegeben.
- Hast Du vieleicht 'viele' Bilder die ja 4 mal mehr Schpeicher in VGA verbrauchen als in QVGA.

Wenn Du wills könntest Du mal Dein Programm posten, und Ich würde auch mal vergleichen. Ich habe einen Qtek 9090 WM2003 und neuerdings auch einen HTC Touch HD.

Ich habe noch nie mit der Chart Library gearbeitet, weiss also nicht ob deren Objekte viel Speicherplatz benötigen, aber falls es Bilder sind brauchen die ja mehr Platz in VGA.

In B4PPC Version 6.8 gibt es einen neuen Kompilermodus Device (Auto Scale) Exe. Man schreibt das Programm für QVGA und der Kompiler kümmert sich dann um die ganze Skalierung zwischen QVGA und VGA . Funktioniert mit meinen Programmen prima.

Beste Grüsse.
 
Last edited:

Paulsche

Well-Known Member
Licensed User
Longtime User
Hallo Paulsche,
- Benützt Du auch BitmapEx und DrawerEx Objekte aus der ImageLibEx Library ? Da gibt es nähmlich ein Problem, wenn eine BitmapEx einzweites mal mit BitmapEx.New1 neu definiert wird deren Scheicherplatz nicht frei gegeben.
- Hast Du vieleicht 'viele' Bilder die ja 4 mal mehr Schpeicher in VGA verbrauchen als in QVGA.

Wenn Du wills könntest Du mal Dein Programm posten, und Ich würde auch mal vergleichen. Ich habe einen Qtek 9090 WM2003 und neuerdings auch einen HTC Touch HD.

Ich habe noch nie mit der Chart Library gearbeitet, weiss also nicht ob deren Objekte viel Speicherplatz benötigen, aber falls es Bilder sind brauchen die ja mehr Platz in VGA.

In B4PPC Version 6.8 gibt es einen neuen Kompilermodus Device (Auto Scale) Exe. Man schreibt das Programm für QVGA und der Kompiler kümmert sich dann um die ganze Skalierung zwischen QVGA und VGA . Funktioniert mit meinen Programmen prima.

Beste Grüsse.

Hi Klaus, ich hab auch einen Touch-HD, und "ja" ich benutze DrawerEx Objekte. Das "Autoscale" hatte ich mal versucht, aber das funktionierte mit "Charts.dll" nicht zusammen, die Beta ist mir noch zu neu, es müssen erst noch die Librarys darauf angepasst werden denke ich.

Anbei mein Programm, vielleicht siehst Du ja auf die schnelle wo ich da Speicherfresser drin hab.
Ach ja, ich benutze auf 4 Seiten Hintergrundbilder. Ist alles iun der Zip drin.
 

klaus

Expert
Licensed User
Longtime User
Hallo Paulsche,
Ich habe ein bisschen rumgespielt:
Dein Programm auf meinem htc Touch HC verbraucht folgenden Speicherplatz nach dem laden des Programmes:
- Device kompiliert V6.5 12.6 MB
- Device (Auto Scale) V6.8 4.68 MB

Habe ein kleines Textprogramm geschrieben, mit Version 6.8 Device (Auto Scale)kompiliert, mit:
Touch HD
- 1 Form ohne Hintergrundbild 0.57 MB
- 1 Form mit Hintergrundbild 0.63 MB
- 5 Formen ohne Hintergrundbild 1.19 MB
- 5 Formen mit Hintergrundbild 1.25 MB

Qtek 9090 Version 6.8 Device kompiliert.
- 1 Form ohne Hintergrundbild 3.1 MB
- 1 Form mit Hintergrundbild 3.1 MB
- 5 Formen ohne Hintergrundbild 3.61 MB
- 5 Formen mit Hintergrundbild 3.67 MB

Es sieht so aus dass es die ganzen Bilder in den Forms und in den Controls sind die den meissten Speicherplatz verbrauchen.

Der Unterschied zwischen Qtek9090 und Touch HD ist sehr gross. Das bemerkliche ist aber dass mit einer 4 mal grösseren Auflösung der verbrauchte Speicherplatz auf dem Touch HD doch weit kleiner ist, allerdings mit Device (Auto Scale). Ich weiss aber nicht ob die Anzeige vom verbrauchten Speicherplatz in beiden Geräten wirklich das gleiche anzeigt. Denn der Speicherplatz für 1 Form

Leider habe Ich keine konkrete Lösung zur Speicherverminderung, abgesehen von Device (Auto Scale), aber dafür braucht es wahrscheinlich noch ein bisschen Zeit bis die Endversion mit upgedateten Libraries raus kommt.

Beste Grüsse.
 

Paulsche

Well-Known Member
Licensed User
Longtime User
Hi Klaus,

danke für Deine Tests, :sign0098: da werde ich wohl ganz gespannt auf die neue Version
warten. Vielleicht bau ich noch was in mein Prog ein, wo man einfach die Hintergrundbilder abschalten kann, bei denen wo es zu knapp mit Speicher ist.
 
D

Deleted member 103

Guest
Hallo Paulsche,

tolles Programm!:sign0188:

Ich kann das von Klaus bestätigen. Auf meinem MDA-Pro verbraucht es genau so viel Speicher.


Ciao,
Filippo
 

Paulsche

Well-Known Member
Licensed User
Longtime User
Danke Filippo,

ja, wenn ich es mit "Force QVGA" compailiere braucht es die hälfte an Speicher.
werd wohl vorübergehend eine VGA + QVGA Version anbieten müssen.

Übrigens, Dein fgDirChooser aus der fgControlsEX hat die ganze Routine
"FolderChooser" aus dem forum ersetzt, funktioniert Prima, danke. :)
 

Paulsche

Well-Known Member
Licensed User
Longtime User
Hab mein Programm nun überarbeitet:

Ich hatte ja die ganzen Texte und Daten mit Drawstring gezeichnet, da ich
Hindergrundbilder benutze, Drawstring habe ich nun gegen Labels mit Transparenz getauscht (geht ja seit V6.8) .
Dann mit "Autoscale" mit Version 6.8 kompiliert.

Und siehe da, keine speicherprobleme mehr, kann mehrere Programme aufmachen
und meine Programm läuft noch immer ohne Probleme.

Ob es nun am Drawstring oder an der V6.8 mit Autoscale liegt, keine Ahnung.
 
Top