Speicherauslastung (bis zu 150 MB)

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

barratator

Betreff: Speicherauslastung (bis zu 150 MB)

BeitragMo, Jun 23, 2008 15:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo.
Ich habe folgendes Problem:
Bei einem Tool, welches ich geschrieben habe gibt es, wenn ich es aus dem Editor starte, also nicht vorher eine Executable erstelle, eine Speicherauslastung von rund 10-30 MB.

Wenn ich daraus allerdings eine Executable erstellen und dann öffne, sind es laut dem Taskmanager ab der ersten Sekunde zwischen 150 und 156 MB...
Es ist dann nichtmehr steigend (schwankt aber immer ein bisschen).

Probiert:
Debugmodus ein und ausgeschaltet -> Keine Veränderung
Nach Speicherlecks, also ungelöschten Banks, etc. gesucht -> Nichts gefunden.

Aber es ist wie gesagt nur wenn es als Executable gestartet wird so...


Danke im vorraus.



gruß
Bastian

ozzi789

BeitragMo, Jun 23, 2008 19:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Was macht den dein Tool genau ?
(braucht es grafiken oder andere externe Datein ?)
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
 

Silvester

BeitragMo, Jun 23, 2008 20:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Hast du vlt gleichzeitig ein paar andere (speicherintensive) programme gleichzeitig laufen?
Mach das Fenster zu, dem Pinguin wird kalt!!! Smile
 

barratator

BeitragMo, Jun 23, 2008 20:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Tool ist ein G15 Applet.
Joa...es braucht eine Menge externe Dateien, aber selbst wenn ich alle größen der Datein zusammenaddiere komme ich grademal auf 0,25 MB.
Es bindet noch ein paar DLLs ein.
Aber wie gesagt: Nur wenn es als *.exe kompiliert ist :S

@ Silvester: Ähm...der Taskmanager zeigt es für die Executable von mir so an...Nicht für alles zusammen.

xaerox

BeitragMo, Jun 23, 2008 21:54
Antworten mit Zitat
Benutzer-Profile anzeigen
naja ich würde denken weil dein blitz basic das dann in maschinenbefehle umwandelt und dazu hardcoded maschinenbefehle...
ich denke dass ist normal weil ich hab auch probiert, indem ich einfach musik abspiele und da war das auch so...
Biker sind wahre Helden.
Auch Musiker.
 

barratator

BeitragMo, Jun 23, 2008 22:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Das heißt...ich muss mit 150 MB leben??

BladeRunner

Moderator

BeitragMo, Jun 23, 2008 22:08
Antworten mit Zitat
Benutzer-Profile anzeigen
xaerox, und was soll das eine mit dem anderen zu tun haben?
barratator, kannst Du den Source zeigen?
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

ChristianK

BeitragMo, Jun 23, 2008 22:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Generell kann man sagen, dass das Starten aus der IDE heraus immer etwas mehr Speicher braucht, als die kompilierte EXE, da beim IDE-Start das Programm über den Compiler blitzcc.exe gestartet wird, der natürlich auch ein wenig Speicher benötigt. Der von DLLs angeforderte Speicher wird übrigens nicht mit zur Speicherauslastung des Prozesses gezählt! Achte da besser auf den gesamten zugesicherten Speicher aller Prozesse vor und nach dem Start, um ungefähr den Verbrauch zu ermitteln.
Ich hab jetzt ein paar Dinge ausprobiert mit Bildern, Musik und DLLs und die Speicherbilanz hat immer gestimmt. Und bei dem Unterschied in deinem Programm muss etwas beim Laden schief gegangen sein oder es gibt doch ein Speicherleck. Smile
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

barratator

BeitragDi, Jun 24, 2008 6:37
Antworten mit Zitat
Benutzer-Profile anzeigen
@BladeRunner:
Ne...eher schlecht Wink Das ist ein 4000-Zeilen Projekt.

@ChristianK: Thx, ich teste es mal direkt. Aber war ja klar das du dich davon distanzierst, dass DLLs mit eingerechnet werden Razz

EDIT: Ok, habe jetzt mal geschaut. Die Auslastung geht auch bei dem Gesamten um 150 MB hoch. :S
 

Dreamora

BeitragDi, Jun 24, 2008 6:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Bleiben dir 2 Möglichkeiten:

1. Kleines testprogramm schreiben und schauen obs da auch auftritt
2. Das ganze zu debuggen. Ist zwar schön das du meinst das du keine Leaks hast und meinst du wüsstest wieviel Speicher was braucht. Nur meinen kann man viel und wenn man sich die bluescreens unter Win98 ansieht, haben sich da schon bedeutend bessere Programmierer als du geirrt Wink
Vielleicht erzeugt dein Programm einfach massenhaft temporäre Daten die es zur späteren verwendung alloziert. Seien es gigantische Bilder (obwohl, 150 MB wär grad ma ein 8192 x 4096 bild ...) oder entsprechende Banks / Arrays oder du alloziierst types und vergisst sie zu nutzen / löschen.

Wenn du 4000 Zeilen hast, würde ich mal spontan drauf wetten das du recht zeug rumpumpst, denn für ein kleines G15 programm braucht man nicht mal nen 10tel davon.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
  • Zuletzt bearbeitet von Dreamora am Di, Jun 24, 2008 19:57, insgesamt einmal bearbeitet
 

barratator

BeitragDi, Jun 24, 2008 13:37
Antworten mit Zitat
Benutzer-Profile anzeigen
@Dreamora:
Natürlich hat es eine Art Speicherleck, da ist ja kein Zweifel dran Wink
Ich wollte nur sagen, dass es nicht steigend ist, also das z.b. 4kb/s dazukommen.

Und nein Wink Es ist kein kleines Applet.
Hier in der Liste ist es bei den Bewertungen auf Platz 1 hochgerückt.


Ich mache mal, wie du gesagt hast, ein paar tests.




gruß
Bastian

xaerox

BeitragDi, Jun 24, 2008 16:07
Antworten mit Zitat
Benutzer-Profile anzeigen
BladeRunner hat Folgendes geschrieben:
xaerox, und was soll das eine mit dem anderen zu tun haben?
barratator, kannst Du den Source zeigen?

1. ich hab mal selber die zeit genommen und ein testprogramm geschrieben und da war auch deutlich mehr speicherverbrauch..es kann sein dass dass blitzcc so ist also dass das irgentwie anders verarbeitet wird.
Biker sind wahre Helden.
Auch Musiker.

ozzi789

BeitragDi, Jun 24, 2008 17:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann es sein das du irgendwas in ner schleife lädst ? (wens konstant rauf geht :S )
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Thorsten

BeitragDi, Jun 24, 2008 17:48
Antworten mit Zitat
Benutzer-Profile anzeigen
ozzi789 hat Folgendes geschrieben:
Kann es sein das du irgendwas in ner schleife lädst ? (wens konstant rauf geht :S )

Tja, also wer das Problem nicht wirklich kennt (bzw. den Thread nicht gelesen hat Rolling Eyes), könnte das doch durchaus denken!

barratator hat Folgendes geschrieben:
Wenn ich daraus allerdings eine Executable erstellen und dann öffne, sind es laut dem Taskmanager ab der ersten Sekunde zwischen 150 und 156 MB...
Es ist dann nichtmehr steigend (schwankt aber immer ein bisschen).

barratator hat Folgendes geschrieben:
Ich wollte nur sagen, dass es nicht steigend ist, also das z.b. 4kb/s dazukommen.


mfG,

Thorsten

BladeRunner

Moderator

BeitragDi, Jun 24, 2008 19:43
Antworten mit Zitat
Benutzer-Profile anzeigen
xaerox hat Folgendes geschrieben:
BladeRunner hat Folgendes geschrieben:
xaerox, und was soll das eine mit dem anderen zu tun haben?
barratator, kannst Du den Source zeigen?

1. ich hab mal selber die zeit genommen und ein testprogramm geschrieben und da war auch deutlich mehr speicherverbrauch..es kann sein dass dass blitzcc so ist also dass das irgentwie anders verarbeitet wird.


Wenn Du gesteigerten RAM-Bedarf hast wird in aller Regel dein Programm dieses RAM anfordern, sei es für Banks, Types oder sonstige Spässe. Das umwandeln des Codes in Assembler ist sicher nicht der Auslöser für den gestiegenen Bedarf. Wenn Du gegenteilige Beweise hast: Posten, nicht nur rumtuten, aber da ich vermute dass Du nicht wirklich begreifst was Du da sagst wirst Du uns den Beweis schuldig bleiben, denke ich.
Barratator, wenn dein Applet so viel Speicher zieht und du keinen Code zur Verfügung stellen willst wird Dir nichts weiter bleiben als tun was Dreamora vorschlug und mal deine ganzen Arrays/ Banks/ etc zusammenaddieren ob Du da vielleicht ein wenig großzügig warst Wink
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

barratator

BeitragDi, Jun 24, 2008 21:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja...ich glaube...*hüstel*...ich weiß wo der Fehler liegt...

Edit: Hat sich bestätigt Sad


Code: [AUSKLAPPEN]

Dim ProcessLastTick(max_proccess)
Dim ProcessLastTime(max_proccess)
Dim process(max_proccess,5) ;  1 = act ; 2 = memo
Dim p_name$(max_proccess)


max_proccess = 4000000

D.h. werden rund 128MB Speicher reseviert...Thx Smile

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group