IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

destruction d'un objet [.net remoting]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 49
    Par défaut destruction d'un objet [.net remoting]
    Bonjour,
    donc deja petite explication de ce qui existe:
    un serveur propose un service au client, chaque client se connecte et récupère une instance propre d'un second objet qui as pour but d'effectuer des recherche sur une base.
    afin d'éviter tous problème la durée de vie des services proposé par le serveur est défini comme illimité, il n'existe coté serveur aucune référence sur les objets.

    lorsque le client se déconnecte, ou que le serveur déconnecte lui même un client, je voudrais pouvoir détruire directement mon objet service afin de ne pas encombré la mémoire(10K objet=50mo)
    de ce que j'ai pu voir il n'est pas possible de demander a GC de détruire explicitement un objet, du genre:
    je pense que c'est assé clair, sinon, je rajouterais des précision si il le faut

    Merci d'avance

  2. #2
    Membre émérite
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Par défaut
    Ton objet n'a pas de méthode Dispose() ou Close() ?

  3. #3
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 49
    Par défaut
    via dispose je pourais libéré les objet de cette objet, mais, il serat lui même détruit au passage?
    si c'est le cas, j'ai mal lu la doc

    je m'explique, dans la doc, il est dit que l'objet passe par le gc, mais, dispose est un apelle explicite au GC pour cet objet, ou ca simplifie juste la vie du gc quand il va passé?

  4. #4
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    On ne peut pas forcer la destruction d'un objet en C#, c'est le GC qui s'en charge automatiquement quand il collecte les objets dont il a vu qu'ils étaient inatteignables par les objets "vivants". Dans ton cas, en remoting, le GC verra que tes objets instanciés par chaque connexion client sont inatteignables, et les détruira quand ça lui chante.

  5. #5
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 49
    Par défaut
    tu es sur de ca?
    j'avais lu une doc sur le remoting (.net ou java rmi je sais plus) ou il etait dit que dans ce cas de figure le gc n'était pas capable de déterminé la durée de vie de l'objet, et que celle ci etait fixé par un "contrat", j'initialise ce contrat pour que mon objet ne meurt jamais(sinon c'est lourd pour l'utilisateur il devras se re log, etc) donc normalement, l'objet ne serat jamais traité implicitement par le gc
    enfin c'est ce qu'il me semble

    mais peut etre que ca concerné le rmi, et que .net le gére mieux, et dans ce cas le probléme est reglé
    mais petit test: j'ai une boucle, ou un client se co et fait une recherche, j'était a un peu plus de 31000 recherche effectué, 792mo de mémoire utilisé au lancement, la 925mo

  6. #6
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Effectivement, le cas du remoting est particulier. Faudrait voir si t'as pas intérêt à passer en mode singleton. D'autant plus que les objets que tu exposes sont si lourds que ça ? S'ils servent à la recherche, l'essentiel de leur "intelligence" est dans les méthodes membres, pas dans des variables membres, et tes objets ne doivent pas peser grand chose.

Discussions similaires

  1. Envoi d'un objet - Dot NET Remoting
    Par Zivoul dans le forum C#
    Réponses: 0
    Dernier message: 20/05/2011, 14h51
  2. Passage d'objet en .Net remoting
    Par richton95 dans le forum C#
    Réponses: 2
    Dernier message: 18/08/2009, 10h11
  3. [VS.net 2005] Destruction d'un objet
    Par WriteLN dans le forum Framework .NET
    Réponses: 12
    Dernier message: 23/08/2007, 11h28
  4. [.Net Remoting] Disponibilité d'un objet
    Par genki dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 24/07/2007, 16h22
  5. Communication entre objets via .NET Remoting
    Par JBidouille dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/05/2007, 22h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo