Seite 1 von 1

Frage zu LoadImage + FreeImage

Verfasst: 23.07.2007 20:36
von SB2006
Wenn ich in dem folgenden Beispiel die Bilder öfters hintereinander lade und lösche
wird der Speicher bei der Betrachtung im CPU-Monitors nicht vollständig zurückgesetzt.
Also der Speicherverbrauch erhöht sich trotz des Löschens der Bilder und der ImageGadget's.
Ist das mein Fehler oder ein Problem von PB oder Normal?

Code: Alles auswählen

OpenWindow(0,100,100,400,400,"test bilder")
  
  CreateGadgetList(WindowID(0))
      ButtonGadget(1,2,2,100,20,"Bilder laden")
      ButtonGadget(2,105,2,100,20,"Bilder loeschen")        
  CreateStatusBar(50,WindowID(0))
      AddStatusBarField(100)

Repeat
    eventID = WaitWindowEvent()
    
    Select eventID
        Case #PB_Event_Gadget
            Select EventGadget()
                Case 1  :Gosub bilder_laden
                Case 2  :Gosub bilder_loeschen
            EndSelect
    EndSelect
            
Until eventID = #PB_Event_CloseWindow
End

;-bilder laden---------------------------------------------------------------
bilder_laden:
    
    For i=0 To 4
        LoadImage(i,GetCurrentDirectory() + "Bild" + Str(i) +".bmp")
        ResizeImage(i,300,300)    
           
        ImageGadget(i+10,10,30,200,200,ImageID(i))
        
        StatusBarText(50,0,Str(i+1) + " Bilder geladen")
    Next
Return

;-bilder loeschen-----------------------------------------------------------
bilder_loeschen:
    For i=0 To 4
        FreeImage(i)
        FreeGadget(i+10)

        StatusBarText(50,0,Str(i+1) + " Bilder gelöscht")
    Next
Return

Verfasst: 23.07.2007 20:47
von Kaeru Gaman
ganz spontan, nur von deiner frage her, ohne den code zu testen:
so ein verhalten ist vorstellbar.

auch PB tut ab einer gewissen Ebene nix anderes, als mit dem Betriebssystem zu kommunizieren...

wenn da schnell speicher angefordert/freigegeben/angefordert/freigegeben/angefordert wird,
dann kommt vielleicht Windows mit der verwaltung nicht so ganz hinterher.

wenn es so ist, ist es aber sicher kein fehler, weder von PB noch von Windows.

Verfasst: 23.07.2007 20:51
von Yoshi
@Kaerum Gaman:

Liegt das dann am Arbeitsspeicher?

Verfasst: 23.07.2007 21:00
von Kaeru Gaman
@Yoshi

vor allem daran, wie windows ihn verwaltet.
Windows braucht auch zeit, um seinen job zu tun, und hat dafür auch prioritäten.

wenn deine app zu schnell was tut, dass windows nicht hinterherkommt mit dem sortieren,
ist das eigentlich normal,
dass dein speicherverbrauch nicht genau den anforderungen deines programms entspricht.
er entspricht dann eher den möglichkeiten von Windows, hinter dir aufzuräumen.

Verfasst: 23.07.2007 22:05
von SB2006
Ich hab das auch mal mit einem ähnlichen Programm getestet.
Aber mit 100 Bildern getestet.
Das Programm sollte die Bilder laden und dann Miniaturansichten erstellen.
Ähnlich wie im Windows Explorer.
Da wird das aber zum Problem, wenn der Speicher sich aufbaut.

Verfasst: 24.07.2007 04:37
von edel
Kannst ja mal mit memproof gucken ob es wirklich Speicherlecks gibt.