|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre émérite
![]() ![]() Sébastien TahierInscription : octobre 2006 Messages : 726 ![]() |
__________________
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. ![]() Mes Articles : Mon premier article est sur le language D |
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() |
Ca existe bien avec Tango :
http://www.dsource.org/projects/tang...e.WeakRef.html |
|
|
00
|
|
|
#3 |
|
Membre émérite
![]() ![]() Sébastien TahierInscription : octobre 2006 Messages : 726 ![]() |
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. ![]() Mes Articles : Mon premier article est sur le language D |
|
|
00
|
|
|
#4 |
|
Membre éprouvé
![]() Inscription : mai 2005 Messages : 223 ![]() |
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. |
|
|
00
|
|
|
#5 |
|
Membre émérite
![]() ![]() Sébastien TahierInscription : octobre 2006 Messages : 726 ![]() |
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. ![]() Mes Articles : Mon premier article est sur le language D |
|
|
00
|
|
|
#6 |
|
Membre éclairé
![]() Inscription : juillet 2008 Messages : 339 ![]() |
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. |
|
00
|
|
|
#7 |
|
Membre émérite
![]() ![]() Sébastien TahierInscription : octobre 2006 Messages : 726 ![]() |
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. ![]() Mes Articles : Mon premier article est sur le language D |
|
|
00
|
|
|
#8 | |||
|
Membre éclairé
![]() Inscription : juillet 2008 Messages : 339 ![]() |
Citation:
Citation:
Citation:
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. |
|||
|
00
|
|
|
#9 | |
|
Membre émérite
![]() ![]() Sébastien TahierInscription : octobre 2006 Messages : 726 ![]() |
Citation:
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. ![]() Mes Articles : Mon premier article est sur le language D |
|
|
|
00
|
|
|
#10 |
|
Membre éclairé
![]() Inscription : juillet 2008 Messages : 339 ![]() |
Tu peux forcer la destruction d'un objet non détruit avec delete, où encore bypasser le GC et utiliser malloc/free.
|
|
00
|
|
|
#11 |
|
Membre émérite
![]() ![]() Sébastien TahierInscription : octobre 2006 Messages : 726 ![]() |
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. ![]() Mes Articles : Mon premier article est sur le language D |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com