Speicherauslastung (bis zu 150 MB)
Übersicht

barratatorBetreff: Speicherauslastung (bis zu 150 MB) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was macht den dein Tool genau ?
(braucht es grafiken oder andere externe Datein ?) |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
Silvester |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hast du vlt gleichzeitig ein paar andere (speicherintensive) programme gleichzeitig laufen? | ||
Mach das Fenster zu, dem Pinguin wird kalt!!! ![]() |
barratator |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das heißt...ich muss mit 150 MB leben?? | ||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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. ![]() |
||
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@BladeRunner:
Ne...eher schlecht ![]() @ChristianK: Thx, ich teste es mal direkt. Aber war ja klar das du dich davon distanzierst, dass DLLs mit eingerechnet werden ![]() EDIT: Ok, habe jetzt mal geschaut. Die Auslastung geht auch bei dem Gesamten um 150 MB hoch. :S |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() 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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@Dreamora:
Natürlich hat es eine Art Speicherleck, da ist ja kein Zweifel dran ![]() Ich wollte nur sagen, dass es nicht steigend ist, also das z.b. 4kb/s dazukommen. Und nein ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() 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 |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() |
||
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Naja...ich glaube...*hüstel*...ich weiß wo der Fehler liegt...
Edit: Hat sich bestätigt ![]() 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 ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group