Foro | | | | - Página 1 - |
| GDL | ¡Hola, habe una Programa, el media freien Speicher(240MB) beim Laden kurzfristig en 2 MB bringt y danach otra vez en 235 MB ansteigen lässt.
Durch Fehlersuche fand Yo, el Übeltäter KompilierenMarcaSeparación
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 ENDPROC
Mit sleep 5000 a dieser Punto bricht el Speicher no mehr una.Je kleiner el Sleepzeit umso más bricht el Speicher una.
Servus Georg |
| | | | |
| | | | | - Página 1 - |
| Rolf Koch | *lol* Nee egal si klein oder gross, simplemente siempre sólo el selbe Variable BILD& sin Arrayzähler. |
| | | | |
| | Rolf Koch | Aber Stopp: Como sieht PICBUTTON de (probablemente ne Subproc ser?) - tal vez passiert como sí qué (algo no freigegeben más o menos)? |
| | | | |
| | | | - Página 2 - |
| | GDL | ¡Hola Rolf, el Bilder son una Container y voluntad später entonces zusätzlich en neu erstellte Controls ebenso automáticamente übertragen. El Anfangsbutton son sólo Auswahlbutton para neue Eisenbahnkomponenten.
Posesiones ahora jede Variation durchprobiert. Posesiones sleep auch a el Anfang el Procedure gestellt en qué a Testen. Hier es selbiges.Yo vermute lo hängt con el declarar bild_&[9000] zusammen. Der Rechner braucht sólo irgendwo Tiempo ,como el Proc leiste igual después de window... aufgerufen se.
Servus Georg |
| | | | |
| | GDL | Como no Fehlermeldung kommt y el Proggi einwandfrei se ejecuta iss lo en efecto igual. Mir fiels sólo sólo en, como en mi PII Rechner, auch sin sleep, ne 10 sec. Gedenkminute eingelegt se. Werds später veces en Archivos auslagern.
Gracias nochmals.
Servus Georg |
| | | | |
| | | ¡Hola Georg...
Mit TNT puede ser beim Erstellen uno Speicherbitmap muy bien sehen, en el grafischen Objekten no sólo en el virtuellen Speicher su Prozesses gearbeitet se, pero en todavía viel größerem Maße en el de CSRSS.EXE
Was geschieht beim Starten uno Prozesses? Der Prozess se rápidamente disponible posición => el dynamische Priorität es muy hoch...
Mi Theorie: CSRSS se ejecuta con normaler Priorität. Su Prozess klaut also beim Starten CSRSS Prozessorzeit => Bereiche, el vorher de CSRSS zugewiesen fueron, puede no en el erforderlichen Tiempo otra vez freigegeben voluntad.. a) Mit Sleep gibts du Prozessorzeit para x-Millisekunden de, CSRSS kommt entonces otra vez a el Reihe y kann endlich saubermachen. b) Dynamische Priorität verringert se (si nichts besonders passiert) con el Laufzeit des Prozesses. Irgendwann Es el dynamische Priorität así gering, el CSRSS otra vez en el Rollen kommt y räumt el vorher genutzten Speicher beiseite.
Das Problema liegt also no (direkt) a deinem Programa.
Sombrero alguien una bessere Erklärung?
PS: 30*2KB puede ser así no necesariamente rechnen. - Jede Página en el Speicher es etwa 4kB groß. - Heapkontrollstrukturen necesario como auch todavía hinzugerechnet voluntad - Handle nimmt Platz weg - .. |
| | | | |
| | GDL | ¡Hola Andreas,
deine Theorie deckt se sí con meiner Vermutung. Nur passiert lo auch ya en una pic, si vorher declarar bild&[9000]. En declarar bild&[10] y 10 pics es alles Haga clic en Aceptar.
Servus Georg |
| | | | |
| | | Was macht el dein Prozess en declarar bild&[9000]? Er initialisiert Speicher, y el no gerade wenig. Como es also alguien stark beschäftig. Passiert el en el Initialisierungsphase, kann CSRSS el para el Mostrar de grafischen Elementen bereitgestellten Speicher no otra vez liberación, como CSRSS a diesem Zeitpunkt unterhalb el Priorität de deinem Prozess liegt. Kann el por desgracia, no überprüfen, como Yo dein komplettes Programa no habe. |
| | | | |
| | Rolf Koch | Das meinte Yo sí con bild&. Jedoch verstehe Yo Su Anliegen esta Bilder en el Programa bereitzuhalten. Leider weis Yo no, wieviel Speicher para je una Array previsto se. Müsste Roland beantworten. Denn 9000 es wirklich muy viel. Yo überlege grad, como Usted el Bilder anstatt por Array irgendwie anders festhalten kannst. |
| | | | |
| | GDL | Bin gerade esta Modellbahnsteuerung para Rechner con Win98 y 64MB RAM flotter hinzubekommen. Hay pero no Fehlermeldungen en all esta Fällen. Wenn du bajo Wettbewerbe el letzte Installversion en el letzten Posting holst hast du alles komplett. Nach el Einlogen(asxdf) bajo Auswahlbutton Plan es el Programa en el Rohform.
Servus Georg |
| | | | |
| | | Werd veces probieren, si en me se ejecuta. Como ya he dicho, Yo hier kackfrech simplemente veces así behaupte es, daß no dein Prozess el Speicher verpulvert, pero CSRSS.
Saludo
Andreas |
| | | | |
| | Rolf Koch | Yo sehe grad, Su Bilder haben sowieso Bild+Nr.Bmp. Versuchs doch veces así: KompilierenMarcaSeparaciónname$= astart$+"\bilder\bild2.BMP"
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&
Usted hast ahora kein Array, el es klar. Jedoch kannst Usted sí später en el Programa doch muy schön bild& je después de Aktion otra vez el richtige Bild zufügen: Ejemplo: Lo se el 10te Bild otra vez benötigt: (Aktion wäre hier 10 y sería en zahlenausleser$ gespeichert) KompilierenMarcaSeparaciónbild$=astart$+"\bilder\bild"+zahlenausleser$+".BMP"
bild& = @Crear("HPIC", -1, name$)
neuerbutton&=@Crear("PicButton",arbeitsleiste&,bild&,31,1,30,30,)
destroywindow bild&
Aufjedenfall solltest Usted de solch grossen Arrays (9000!) Abstand gewinnen. |
| | | | |
| | GDL | Bin gerade esta me una Bildcontainer con festen Bildern a hacer y ändere el Verschiebetechnik entonces de. Komme entonces con 200 Bildern de. KompilierenMarcaSeparaciónnum1&=1
clear result%
whilenot num1& > objekt& Erzeugte Objekte abfragen
x%=1
y%=1
CheckMouse objekt_&[num1&],x%,y%,lang_&[num1&],breit_&[num1&]
If result% = 1
settext kfenster&,oname_$[num1&]
num&=num1&
clear result%
whilenot %Mousepressed = 0
UseCursor 3
destroywindow(objekt_&[num1&])
num&=num1&
settext kfenster&,oname_$[num1&]
xpos_&[num1&]=%mousex
ypos_&[num1&]=%mousey
xpos_1&[num1&]=%mousex+xbalken%
ypos_1&[num1&]=%mousey+ybalken%
ifnot ttext&[num1&]=1
objekt_&[num1&]=control("STATIC","",style_&[num1&],xpos_&[num1&],ypos_&[num1&],lang_&[num1&],breit_&[num1&],%hwnd,0,%hinstance,$0)
casenot left$(oname_$[num&],3)="Ger":Sendmessage(objekt_&[num1&],$172,0,bild_&[num1&]) hier werden die Pics momentan gebraucht
else
objekt_&[num1&]=create("text",%hwnd,oname_$[num1&],xpos_&[num1&],ypos_&[num1&],lang_&[num1&],breit_&[num1&])
setfont objekt_&[num1&],font&
endif
wend
UseCursor 0
Endif
num1&=num1&+1
wend
if %MouseKey=2
xn%=%mousex
yn%=%mousey
drawtext 10,%maxy-80,("aktuelle Erstellkoordinate: x "+right$(("00"+str$(%mousex)),3)+" y "+right$(("00"+str$(%mousey)),3))
../function-references/XProfan/endif/'>endif
Lo va , muss sólo el Objekterzeugung todavía ändern.
Servus Georg |
| | | | |
|
RespuestaThemeninformationenDieses Thema ha 4 subscriber: |