[VB.Net] Libérer ressources d'une variable

    Publicités

Users Who Are Viewing This Thread (Total: 0, Members: 0, Guests: 0)

Status
Not open for further replies.
Apr 26, 2011
1,315
2
944
26
In my home
Discord
brokeos
Salut tout le monde, j'ai un gros problème concernant la libération des ressources d'une variable, je m'explique :

J'ai une application Serveur et une class pour chaque Client.
J'ai ma variable : "Dim Bytes(1024 * 1024) As Byte" qui permet de créer un buffer pour l'envoi de données.

Ma question est, comment libérer les ressources de cette variable, car plus j'ai de client, plus les ressources vont augmenter, en plus de ça, si un client de déconnecte et ce reconnecte par exemple, 500 fois, j'aurais 500 tableau de 1024 * 1024 !

Je sais pas si c'est assez clair, mais si ça ne l'ai pas, posé moi d'autres questions ! :)
 

Misuki

Git Wizard en freelance
V
Ancien staff
Jun 15, 2012
2,303
66
954
Tu peux pas pré-créer ton tableau en ne spécifiant pas sa taille dès le début et mettre toutes les ressources d'un seul coup dans le tableau une fois que tu as toutes les ressources qu'il te faut ?

EDIT:
Sinon tu as le mot clé Erase
MSDN said:
Utilisée pour libérer les variables tableau et la mémoire utilisée pour leurs éléments.

ça s'utilise comme ça, tout simplement:

Erase array1, [array2], [array3],...

array1 obligatoire.

Lien vers la doc: Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!
 
Last edited:

Evaelis

La Voix de la Sagesse
V
Ancien staff
Apr 28, 2010
22,949
468
1,699
Valhalla
Ils sont beau malloc et free. Après en VB, quand tu mets à empty, ça vide le contenu mais pas l'allocation.
Essayes de trouver des équivalents de free (Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!) ou alors fait un tableau, et quand tu en besoin tu réécris dessus.
Selon comment tu l'utilises tu as aussi Redim mais là j'en doute dans le cas d'une création lors de la connexion.
List(Of T) est bien aussi.
 

TheHardButcher

Programmeur C/C++
V
Dec 14, 2009
1,461
58
964
France
Théoriquement, ça serais du malloc&free like, mais a mon avis, c'est gérer automatiquement.

Tu devrais faire un test avec tes 5000 deco reco de clients et voir ce que ça donne :)
 
Apr 26, 2011
1,315
2
944
26
In my home
Discord
brokeos

ragnarock

Membre actif
Mar 22, 2010
194
0
917
Salut,

J'ai fait des tests et un simple
Code:
TonTableau = Nothing
vide la mémoire.

Et pourquoi un tableau de plus d'1 million de bytes ?
un de 2K ou 4K, voir 8K suffit amplement dans la plus part des cas

en plus de ça, si un client de déconnecte et ce reconnecte par exemple, 500 fois, j'aurais 500 tableau de 1024 * 1024 !
Bah faut handle la déco des clients et détruire son objet lorsqu'il s'est déconnecté.


Edit: Au pire si ça a pas libéré la mémoire, tu forces un passage de GC et après c'est bon :
Code:
        GC.Collect()
        GC.WaitForPendingFinalizers()
 
Last edited:
Status
Not open for further replies.