Linux Fuite mémoire ?

Codes specifiques à Linux
Scrat
Messages : 86
Inscription : sam. 15/mars/2008 16:00

Linux Fuite mémoire ?

Message par Scrat »

Bonjour à tous

Décidement j'ai pas de bol avec PB sous linux a chaque fois que j'essaye un truc ça bug :cry:

Le code est sans interet mais c'est juste pour mettre en evidence le probleme:

Code : Tout sélectionner

UseJPEGImageDecoder()

Enumeration
#Main
#Img
#Tile
EndEnumeration


If OpenWindow(#Main,0,0,400,400,"Test")
ImageGadget(#Img,0,0,256,256,0)

Repeat
Ev=WaitWindowEvent(10)

If LoadImage(#Tile,GetCurrentDirectory()+"img.jpg")
SetGadgetState(#Img,ImageID(#Tile))
If IsImage(#Tile) : FreeImage(#Tile):EndIf
EndIf

Until Ev = #PB_Event_CloseWindow

EndIf
End

Image

En gros on perd un mega/seconde :cry:
Quelqu'un a t'il déja rencontré ce souci ?

Merci
A+
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Message par Geo Trouvpatou »

Salut.

Testes ça :

Code : Tout sélectionner

UseJPEGImageDecoder()

Enumeration
    #Main
    #Img
    #Tile
EndEnumeration


If OpenWindow(#Main,0,0,400,400,"Test")
    ImageGadget(#Img,0,0,256,256,0)
    
    If LoadImage(#Tile,GetCurrentDirectory()+"img.jpg")
        SetGadgetState(#Img,ImageID(#Tile))
        If IsImage(#Tile) : FreeImage(#Tile) : EndIf
    EndIf
    
    Repeat
        Ev=WaitWindowEvent(10)
        
    Until Ev = #PB_Event_CloseWindow
EndIf
End
Et du coup l'image ne disparaît plus.
Dernière modification par Geo Trouvpatou le mar. 12/mai/2009 15:18, modifié 1 fois.
Scrat
Messages : 86
Inscription : sam. 15/mars/2008 16:00

Message par Scrat »

Salut

Le probleme c'est que j'ai absolument besoin de recharger les images dans la boucle.
Dans le vrai prog les images sont sur un ramdisk, chargée, modifiées, et ensuite affichées.

Le concept fonctionne mais en 3 minutes y'a plus de ram a cause de cette fuite.

Sous Win je me sers de sprite mais sous linux on peut pas utiliser startdrawing sur des sprite avec l'opengl, donc je suis dans le caca.
En plus la lib serial est verollée bref c'est pas la joie sous linux.

A+
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Message par Geo Trouvpatou »

D'autant que le code que j'ai donné fonctionne sous Linux mais plus sous Windows :cry:
Scrat
Messages : 86
Inscription : sam. 15/mars/2008 16:00

Message par Scrat »

Pb résolu en 4.40 beta

A+
Anonyme

Message par Anonyme »

Toujours la fuite avec ton 1° code. sous la 4.40

j'ai mis sa :
If LoadImage(#Tile,GetCurrentDirectory()+"01.bmp") And Imageloaded=0
Imageloaded=1
SetGadgetState(#Img,ImageID(#Tile))
If IsImage(#Tile) : FreeImage(#Tile):EndIf
EndIf
si tu veut changer d'image pendant l'execution du passe ImageLoaded à 0
Scrat
Messages : 86
Inscription : sam. 15/mars/2008 16:00

Message par Scrat »

Salut

C'est bizarre je n'ai plus de fuite en 4.40 b2.

Peut etre un pb de distrib linux ?
Je suis en Jauntu (Ubuntu) et toi ?

Merci

A+
Scrat
Messages : 86
Inscription : sam. 15/mars/2008 16:00

Message par Scrat »

Bon ben j'ai plus de fuite en 4.40b2 mais quand j'ouvre un ecran fenêtré j'ai 2 fenetres indpendantes:

La Gui et l'écran.

Je sens que je commence a craquer

A+
Répondre