Forum | | | | GDL | Hallo, habe ein Programm, das meinen freien Speicher(240MB) beim Laden kurzfristig auf 2 MB bringt und danach wieder auf 235 MB ansteigen lässt.
Durch Fehlersuche fand ich den Übeltäter KompilierenMarkierenSeparieren
proc leiste
windowstyle 3
arbeitsleiste&=create("window",%hwnd,"Arbeitsleiste",1,%maxy-190,1000,90)
name$= astart$+"\bilder\bild1.BMP"
bild_&[9000] = @Create("HPIC", -1, name$)
ger1&=@Create("PicButton",arbeitsleiste&,bild_&[9000],1,1,30,30,)
name$= astart$+"\bilder\bild2.BMP"
bild_&[8999] = @Create("HPIC", -1, name$)
ger2&=@Create("PicButton",arbeitsleiste&,bild_&[8999],31,1,30,30,)
name$= astart$+"\bilder\bild3.BMP"
bild_&[8998] = @Create("HPIC", -1, name$)
bog1&=@Create("PicButton",arbeitsleiste&,bild_&[8998],61,1,30,30,)
name$= astart$+"\bilder\bild4.BMP"
bild_&[8997] = @Create("HPIC", -1, name$)
bog2&=@Create("PicButton",arbeitsleiste&,bild_&[8997],91,1,30,30,)
name$= astart$+"\bilder\bild5.BMP"
bild_&[8996] = @Create("HPIC", -1, name$)
bog3&=@Create("PicButton",arbeitsleiste&,bild_&[8996],121,1,30,30,)
name$= astart$+"\bilder\bild6.BMP"
bild_&[8995] = @Create("HPIC", -1, name$)
bog4&=@Create("PicButton",arbeitsleiste&,bild_&[8995],151,1,30,30,)
name$= astart$+"\bilder\bild7.BMP"
bild_&[8994] = @Create("HPIC", -1, name$)
wei1&=@Create("PicButton",arbeitsleiste&,bild_&[8994],181,1,30,30,)
name$= astart$+"\bilder\bild8.BMP"
bild_&[8993] = @Create("HPIC", -1, name$)
wei2&=@Create("PicButton",arbeitsleiste&,bild_&[8993],211,1,30,30,)
name$= astart$+"\bilder\bild9.BMP"
bild_&[8992] = @Create("HPIC", -1, name$)
wei3&=@Create("PicButton",arbeitsleiste&,bild_&[8992],241,1,30,30,)
name$= astart$+"\bilder\bild10.BMP"
bild_&[8991] = @Create("HPIC", -1, name$)
wei4&=@Create("PicButton",arbeitsleiste&,bild_&[8991],271,1,30,30,)
name$= astart$+"\bilder\bild11.BMP"
bild_&[8990] = @Create("HPIC", -1, name$)
wei5&=@Create("PicButton",arbeitsleiste&,bild_&[8990],301,1,30,30,)
name$= astart$+"\bilder\bild12.BMP"
bild_&[8989] = @Create("HPIC", -1, name$)
wei6&=@Create("PicButton",arbeitsleiste&,bild_&[8989],331,1,30,30,)
name$= astart$+"\bilder\bild13.BMP"
bild_&[8988] = @Create("HPIC", -1, name$)
wei7&=@Create("PicButton",arbeitsleiste&,bild_&[8988],361,1,30,30,)
name$= astart$+"\bilder\bild14.BMP"
bild_&[8987] = @Create("HPIC", -1, name$)
wei8&=@Create("PicButton",arbeitsleiste&,bild_&[8987],391,1,30,30,)
name$= astart$+"\bilder\bild19.BMP"
bild_&[8986] = @Create("HPIC", -1, name$)
kw1&=@Create("PicButton",arbeitsleiste&,bild_&[8986],421,1,30,30,)
name$= astart$+"\bilder\bild20.BMP"
bild_&[8985] = @Create("HPIC", -1, name$)
kw2&=@Create("PicButton",arbeitsleiste&,bild_&[8985],451,1,30,30,)
name$= astart$+"\bilder\bild15.BMP"
bild_&[8984] = @Create("HPIC", -1, name$)
sig1&=@Create("PicButton",arbeitsleiste&,bild_&[8984],481,1,30,30,)
name$= astart$+"\bilder\bild16.BMP"
bild_&[8983] = @Create("HPIC", -1, name$)
sig2&=@Create("PicButton",arbeitsleiste&,bild_&[8983],511,1,30,30,)
name$= astart$+"\bilder\bild18.BMP"
bild_&[8982] = @Create("HPIC", -1, name$)
ap&=@Create("PicButton",arbeitsleiste&,bild_&[8982],541,1,30,30,)
name$= astart$+"\bilder\bild17.BMP"
bild_&[8981] = @Create("HPIC", -1, name$)
bm&=@Create("PicButton",arbeitsleiste&,bild_&[8981],571,1,30,30,)
tas&=@Create("Button",arbeitsleiste&,"Ta",601,1,30,30,)
text&=@Create("Button",arbeitsleiste&,"Text",631,1,50,30,)
name$= astart$+"\bilder\bild21.BMP"
bild_&[8980] = @Create("HPIC", -1, name$)
dwei&[1]=@Create("PicButton",arbeitsleiste&,bild_&[8980],690,1,60,36)
name$= astart$+"\bilder\bild22.BMP"
bild_&[8979] = @Create("HPIC", -1, name$)
dwei&[2]=@Create("PicButton",arbeitsleiste&,bild_&[8979],755,1,60,36)
name$= astart$+"\bilder\bild23.BMP"
bild_&[8978] = @Create("HPIC", -1, name$)
dwei&[3]=@Create("PicButton",arbeitsleiste&,bild_&[8978],820,1,36,60)
name$= astart$+"\bilder\bild24.BMP"
bild_&[8977] = @Create("HPIC", -1, name$)
dwei&[4]=@Create("PicButton",arbeitsleiste&,bild_&[8977],875,1,36,60)
name$= astart$+"\bilder\bild25.BMP"
bild_&[8976] = @Create("HPIC", -1, name$)
winkel&[1]=@Create("PicButton",arbeitsleiste&,bild_&[8976],1,35,30,30)
name$= astart$+"\bilder\bild26.BMP"
bild_&[8975] = @Create("HPIC", -1, name$)
winkel&[2]=@Create("PicButton",arbeitsleiste&,bild_&[8975],31,35,30,30)
sleep 5000 sonst bricht der Speicher ein
endproc
Mit sleep 5000 an dieser Stelle bricht der Speicher nicht mehr ein.Je kleiner die Sleepzeit umso weiter bricht der Speicher ein.
Servus Georg |
| | | | |
| | | Ja weil Windows Zeit braucht um diese Unmengen als virtuellen Speicher auf die Platte zu bringen.
Was haben die Bilder für Ausnaße? |
| | | | |
| | GDL | Hallo if,
durchschnittlich 2KB,und insgesamt 30 Bilder. Die Bilder bis bild_&[8970] werden aber beim Start noch nicht belegt.
Servus Georg |
| | | | |
| | | Hm aber ca 30*2kb sind keine 240mb - wie oft rufst Du diese Proc auf? |
| | | | |
| | GDL | 1 mal beim Start, dann nicht mehr.Danach ändert sich auch nichts mehr am verfügbarem Speicher. Ist nur am Programmstart einmal ein absacken auf ca. 2MB ohne sleep. |
| | | | |
| | Rolf Koch | Was passiert, wenn Du jedesmal folgende Zeile einfügst? bild_&[9000] = @Create(HPIC, -1, name$) ger1&=@Create(PicButton,arbeitsleiste&,bild_&[9000],1,1,30,30,) deleteobject bild_&[9000] (falls dies überhaupt möglich ist) |
| | | | |
| | GDL | Hallo Rolf, werde ich testen, rühr mich wieder. |
| | | | |
| | Rolf Koch | nochwas: vielleicht dann so?
bild&=@Create(HPIC, -1, name$) ger1&=@Create(PicButton,arbeitsleiste&,bild&,1,1,30,30,) destroywindow bild&
name$= astart$+\bilder\bild2.BMP bild& = @Create(HPIC, -1, name$) ger2&=@Create(PicButton,arbeitsleiste&,bild&,31,1,30,30,) destroywindow bild&
das reicht doch, brauchst doch keine Arrayvari dafür! |
| | | | |
| | GDL | Hallo Rolf,
habe obigen so Teil abgeändert KompilierenMarkierenSeparieren
proc leiste
windowstyle 3
arbeitsleiste&=create("window",%hwnd,"Arbeitsleiste",1,%maxy-190,1000,90)
ja
name$= astart$+"\bilder\bild1.BMP"
bild_&[9000] = @Create("HPIC", -1, name$)
ger1&=@Create("PicButton",arbeitsleiste&,bild_&[9000],1,1,30,30,)
deleteobject bild_&[9000]
sleep 5000
return
selbiges in grün.Auch bei nur einem Pic.Ohne sleep bricht Speicher kurzfristig zusammen. |
| | | | |
| | GDL | | | | | |
| | Rolf Koch | *lol* Nee egal ob klein oder gross, einfach immer nur die selbe Variable BILD& ohne Arrayzähler. |
| | | | |
| | Rolf Koch | Aber Stopp: Wie sieht PICBUTTON aus (wird wohl ne Subproc sein?) - vielleicht passiert da ja was (irgendwas nicht freigegeben oder so)? |
| | | | |
|
AntwortenThemenoptionen | 1.903 Betrachtungen |
ThemeninformationenDieses Thema hat 4 Teilnehmer: |