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

D Discussion :

Soft reference en D


Sujet :

D

  1. #1
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut Soft reference en D
    bonjour,

    Je me demandais s'il existe des "soft reference" en D comme il en existe en java ?
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  2. #2
    Membre habitué Avatar de TSalm
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 361
    Points : 177
    Points
    177

  3. #3
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    Oui, la weakReference existe, mais il y a une différence importante entre la weakReference et la softReference. Dans le premier cas une instance peut être libéré par le GC à n'importe quel moment, et dans le deuxième, principalement s'il y a un besoin mémoire.
    Il peut donc y avoir une incidence sur les perfs si la weakReference se comporte comme en java !
    J'imagine que la weakReference en D a le même fonctionnement qu'en java, c'est pour cela que je demandais s'il existait une softReference. pour le moment cela ne semble pas être le cas.
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 264
    Points : 725
    Points
    725
    Par défaut
    Non, il n'y a pas de SoftReference en D, pour la bonne et simple raison que la taille maximale du tas n'est pas fixée à l'exécution par un paramètre de machine virtuelle (java -Xmx)

    D'ailleurs il n'y a pas de machine virtuelle. Le code est natif. La taille maximale du tas dépend donc de ta plateforme.
    "By and large I'm trying to minimize mentions of D in C++ contexts because it's as unfair as bringing a machine gun to a knife fight." - Andrei Alexandrescu

  5. #5
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    Niark13 merci de ta réponse.
    Ils ont quand même implémenté une weakReference.
    La softReference, si elle n'existe pas encore à un intérêt dans le cadre d'applications nécessitant le changement de données importantes en mémoire.
    Je pense que cela finira par arriver avec tango surement.
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Invité
    Invité(e)
    Par défaut
    Si c'est un besoin qui te bloque dans ton utilisation actuelle du D, c'est le genre de problème que tu pourrais exposer sur le newsgroup:

    http://www.digitalmars.com/webnews/newsgroups.php

    Il y aura probablement quelqu'un pour proposer une solution acceptable.

  7. #7
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    Oui, mais je crois qu'il y en a deja qui se pose la question.

    Je suis tombé sur ce post, il date de l'année dernière, mais il a permis la mise en place de la weakref.

    Il est possible qu'avec tango la weak et la soft reference soit la même classe. Visiblement ils utilisent des "weakpointer" créé via le gc. Ce que je ne sais pas pour le moment c'est, est ce que les "weakpointer" peuvent être collecté à n'importe quel moment ou dans des cas spécifiques ?

    Je ne voudrais pas que mon code passe sont temps à recharger les objets collectés inutilement, mais je ne peux pas non plus risquer un engorgement de la mémoire.
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Invité
    Invité(e)
    Par défaut
    Il est possible qu'avec tango la weak et la soft reference soit la même classe. Visiblement ils utilisent des "weakpointer" créé via le gc.
    Le post que tu as pointé indique qu'une implémentation de la weak référence existe (http://www.dsource.org/projects/scra...kref/weakref.d) mais ce n'est pas dans Tango apparemment.

    Ce que je ne sais pas pour le moment c'est, est ce que les "weakpointer" peuvent être collecté à n'importe quel moment ou dans des cas spécifiques ?
    En D, le GC ne travaille que lors des allocations/désallocations impliquant le GC, ou encore lorsqu'on l'appelle explicitement. Il ne se déclenche pas en interrompant ton programme en plein milieu d'un calcul.

    Citation Envoyé par Alkhan Voir le message
    Je ne voudrais pas que mon code passe sont temps à recharger les objets collectés inutilement, mais je ne peux pas non plus risquer un engorgement de la mémoire.
    J'ai l'impression que tu pourrais t'en sortir avec un cache et des références normales. Quand tu as besoin de recharger une donnée, tu la mets en mémoire ; si il n'y a pas assez de mémoire, tu libères la donnée utilisée la moins récemment.

    Pour récupérer le out-of-memory, tu peux utiliser le malloc du C qui renverra NULL en cas d'échec, mais je crois que new renvoie également une exception.

  9. #9
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    Citation Envoyé par ponce Voir le message
    Le post que tu as pointé indique qu'une implémentation de la weak référence existe (http://www.dsource.org/projects/scra...kref/weakref.d) mais ce n'est pas dans Tango apparemment.
    je te confirme que la weakRef existe bien en faite elle se trouve dans le core

    Citation Envoyé par ponce Voir le message
    En D, le GC ne travaille que lors des allocations/désallocations impliquant le GC, ou encore lorsqu'on l'appelle explicitement. Il ne se déclenche pas en interrompant ton programme en plein milieu d'un calcul.
    Je comprend très bien pour l'allocation, mais je ne vois pas pour la désallocation car le but du GC c'est justement de le faire à la place du programmer.
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Invité
    Invité(e)
    Par défaut
    Tu peux forcer la destruction d'un objet non détruit avec delete, où encore bypasser le GC et utiliser malloc/free.

  11. #11
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    ok, merci pour vos réponses !

    je regarderais entre les différentes possibilités, comment je gèrerais le problème.
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. winsock.h : undefined reference...
    Par abraxas dans le forum Dev-C++
    Réponses: 14
    Dernier message: 06/08/2012, 13h42
  2. Lister les softs installés sur un Pc
    Par Jflgb dans le forum C++Builder
    Réponses: 18
    Dernier message: 23/06/2004, 17h34
  3. Réponses: 11
    Dernier message: 17/03/2003, 10h56
  4. [VB6]Passage par référence d'une prop. d'objet à une fct
    Par -gYs- dans le forum VB 6 et antérieur
    Réponses: 15
    Dernier message: 02/09/2002, 08h55
  5. Réponses: 2
    Dernier message: 11/07/2002, 08h31

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