mémoire non libérée

Voir le sujet précédent Voir le sujet suivant Aller en bas

mémoire non libérée

Message par jovasco le Mer 2 Jan - 10:25

Bonjour
petite question en passant sur le Basic
sur TI82 stat (fr)
je réinitialise la calculatrice : mémoire libre 27118
je tape 999->Dim (L1
L1->L2
reste 147 octets
je tape EffToutsListes
mémoire libre : 18132
9053 affectées à Listes... ( oups ! )
Efface L1 à L6 qui contiennent 9 octets (?)
j'efface L1 et L6 reste 18150
EffaceEntrées ne change rien
pour libérer il faut faire 0->Dim(L1
mémoire disponible 27122.

comment expliquez vous que ça ne nettoie pas la mémoire mieux que ça quand on efface les listes ?? (problème sans doute déjà connu je suppose)

et bonne année 2013 !

jovasco
Argent 4
Argent 4

Age : 61
Messages : 80
Date d'inscription : 01/12/2012
Points Forum : 6
Points Concours : 0
Langages :
  • - TI-Basic Z80
Calculatrices :
  • - TI-80
  • - TI-82 Stats.fr
  • - TI-86
  • - TI-89

TI-82 Stats.fr


Revenir en haut Aller en bas

Re: mémoire non libérée

Message par linkakro le Mer 2 Jan - 14:06

J'obtient 150 au lieu de 147 grâce à EffaceEntrées ^^

Il y a effectivement un magnifique bug dans la Table d'Alocation des Variables (VAT comme dit matrefeytontias en assembleur).
Tu m'apprend un truc ! Ok

J'ai d'abord pensé que cela venait de EffToutListe, mais j'ai testé avec EffListe pour obtenir la même chose. Peur
J'ai testé l'éditeur pour vider les listes (sans les Eff...Liste...) : j'obtient des erreurs mémoire !
Que ce soit écraser ou vider, avec l'entête des listes, le problème est là.
Ecraser avec un {0}->L1 ne plante pas et résoud le problème.
EDIT : dernière ligne modifiée, j'avais dû me tromper.

Je peux même dire que le bug est plus grâve que ça : quand on vide la liste sans corriger l'effet du bug, écrire dans la liste augmente le compteur qui était déjà buggué. Choqué
Si encore écrivait dans une zone déjà réservée, cela se supporterait, mais on doit réserver un nouvel espace. Nul

Cela me fera réfléchir sur ma façon de nettoyer la mémoire. Ordre
Le pire c'est que je ne m'en suis jamais aperçu, malgré que j'ai parfois traité des listes longue. Scratch

EDIT: Je me suis enflammé dans tout ce message, voir explication technique de mdr1 ci-dessous.


Dernière édition par linkakro le Mer 2 Jan - 17:01, édité 2 fois

linkakro
Or 4
Or 4

Sexe : Masculin
Age : 22
Messages : 768
Date d'inscription : 01/07/2010
Etudes : dut geii (elec/info)
Points Forum : 51
Points Concours : 8
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84 Pocket.fr

TI-84+ SE


Revenir en haut Aller en bas

Re: mémoire non libérée

Message par mdr1 le Mer 2 Jan - 15:22

Hahaha !! Un instant, j'y ai cru à cette histoire de perte de mémoire ! J'ai failli me faire avoir.
Bon, je vous explique ce qui se passe : tapez RCL ANS et vous comprendrez que les 999*12 octets de liste sont dans "Ans" ("Rep" pour les caltos françaises).
Donc pour libérer cette mémoire, il suffit de mettre dans Ans autre chose que le {0,0,0,...,0,0} bêtement mis à cause de l'instruction L1→L2.
Note : à partir de l'OS 2.53, il faut également supprimer l'entrée pour enlever le résultat de l'historique.

mdr1
Or 1
Or 1

Sexe : Masculin
Age : 26
Messages : 124
Date d'inscription : 16/03/2011
Points Forum : 4
Points Concours : 0
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
  • - TI-Basic Nspire
  • - Ndless Nspire
Calculatrices :
  • - TI-82
  • - TI-83+
  • - TI-84 Pocket.fr
  • - TI-Nspire CX

TI-84 Pocket.fr


Revenir en haut Aller en bas

Re: mémoire non libérée

Message par jovasco le Mer 2 Jan - 15:51

effectivement...

mais pourquoi effaceEntrees ne fait pas le ménage ?

jovasco
Argent 4
Argent 4

Age : 61
Messages : 80
Date d'inscription : 01/12/2012
Points Forum : 6
Points Concours : 0
Langages :
  • - TI-Basic Z80
Calculatrices :
  • - TI-80
  • - TI-82 Stats.fr
  • - TI-86
  • - TI-89

TI-82 Stats.fr


Revenir en haut Aller en bas

Re: mémoire non libérée

Message par linkakro le Mer 2 Jan - 15:59

@jovasco :
Car Rép est différent des entrées.

=========
@mdr1 :

Bien trouvé le Rép ! Ok
Encore mieux les entrées des OS MathPrint. Cool
Cependant je ne sais pas sous quelle catégorie sont classées les entrées. Je crois qu'elles ne sont pas indiquées dans les détails mais seulement prises en compte dans le total de mémoire libre.

Si je veux supprimmer la variable Rép de 9000 octets, saisir "0" suffit.
Ainsi je ne rencontre aucun problème si j'utilise une seule liste puisque Rép n'intervient pas.
Si je manipule uniquement Rép (en changeant de variable et en particulier de type) tout se confirme.
Rép n'est pas indiquée dans le détail des variables mais est pris en compte dans le sous-total de son type et le total général.

EDIT: message modifié de nombreuses fois. Deux erreurs d'observations dont une dans mon message précédent me menaient à une série de conclusions erronées.


Dernière édition par linkakro le Mer 2 Jan - 16:56, édité 2 fois

linkakro
Or 4
Or 4

Sexe : Masculin
Age : 22
Messages : 768
Date d'inscription : 01/07/2010
Etudes : dut geii (elec/info)
Points Forum : 51
Points Concours : 8
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84 Pocket.fr

TI-84+ SE


Revenir en haut Aller en bas

Re: mémoire non libérée

Message par mdr1 le Mer 2 Jan - 16:43

linkakro a écrit:@jovasco :
Car Rép est différent des entrées.
=========
@mdr1 :

EDIT : avant de me faire incendier je recommence toutes mes manips à zéro, j'ai dû commettre une erreur d'observation dès mon message précédent.

Tu es très convaincant mais ton post ne m'explique pas toutes mes observations. En tout cas sur ti82statfr.

En effet "{0}->L1" doit avoir trois effets :
1) supprimmer la variable L1, en remplaçant 9000 octets de 999 zéros par 18 octets d'1 zéro
2) remplacer la variable rép de 9000 octets par celle de 18 octets.
3) allonger la variable des entrées

Si je veux supprimmer la variable Rép de 9000 octets, il devrait suffir de saisir "0". Or cela ne marche pas sur ti82statfr.

En admettant que ce soit Rép le problème, j'émet cette conclusion :
Il semble y avoir un problème de mise à jour de la table même après nettoyage de Rép.

Pourtant J'ai réessayé de stocker une liste uniquement dans Rép (évidemment moins longue), puis en stockant 0 dans Rép, le menu Mémoire en a tenu compte à chaque étape.

Cependant je reconnais que les MathPrint doivent stocker la liste dans les entrées.
Tu récidives, hein ? Ne t'inquiète pas, je vais pas t'incendier, tout le monde peut se tromper. Clin Oeil
Bon, personnellement, j'ai essayé sur une TI-83 (ce qui est pareil qu'une TI-82 stats.fr), je les récupère, les 9000 octets. Tu as fait {0→L1, mais as-tu pensé à faire aussi {0→L2 ?
Si ton problème persiste, j'émets une autre conclusion : ta TI-82 stats.fr est récente, et comme les gars de TI ne se sont pas saoulés, elle comporte des ressemblances avec l'OS 2.53 c'est-à-dire que la mémoire de l'historique des résultats est conservée, ce qui est complètement inutile car on ne peut pas les saisir (contrairement à l'OS disposant du MathPrint). Un seul moyen de vérifier : tente Clear Entries (Efface Entrées).


EDIT : t'as édité pendant que je rédigeais ce message.

mdr1
Or 1
Or 1

Sexe : Masculin
Age : 26
Messages : 124
Date d'inscription : 16/03/2011
Points Forum : 4
Points Concours : 0
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
  • - TI-Basic Nspire
  • - Ndless Nspire
Calculatrices :
  • - TI-82
  • - TI-83+
  • - TI-84 Pocket.fr
  • - TI-Nspire CX

TI-84 Pocket.fr


Revenir en haut Aller en bas

Re: mémoire non libérée

Message par linkakro le Mer 2 Jan - 17:20

Problème réglé. Très Content Merci pour ton intervention aimable. Ok
Spoiler:
Je craignait surtout de semer le chaos en éditant trop sauvagement mes messages.
Une édition peut aller mais pas plusieurs surtout quand des internautes lisent et postent en même temps.

Le premier problème venait de l'observation de {0->L1 dans mon premier message. Confusion avec le fait que L2 était toujours là.
J'ai réitéré avec le simple "0" dans le second message.

Cependant l'OS de la ti82statfr 1.11fr7 est un dérivé de la 1.10 de la ti83.
Celà n'a rien à voir avec MathPrint d'autant que mon erreur n'est pas causée par un bug.
Reconnaissons que c'est troublant d'avoir une variable comptée en mémoire mais pas affichée dans la liste ! Oh
Maintenant nous le saurons. Merci Mdr1 ! Houra

linkakro
Or 4
Or 4

Sexe : Masculin
Age : 22
Messages : 768
Date d'inscription : 01/07/2010
Etudes : dut geii (elec/info)
Points Forum : 51
Points Concours : 8
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84 Pocket.fr

TI-84+ SE


Revenir en haut Aller en bas

Re: mémoire non libérée

Message par jovasco le Mer 2 Jan - 18:29

donc mon post pas si inutile que ça alors ?

jovasco
Argent 4
Argent 4

Age : 61
Messages : 80
Date d'inscription : 01/12/2012
Points Forum : 6
Points Concours : 0
Langages :
  • - TI-Basic Z80
Calculatrices :
  • - TI-80
  • - TI-82 Stats.fr
  • - TI-86
  • - TI-89

TI-82 Stats.fr


Revenir en haut Aller en bas

Re: mémoire non libérée

Message par nikitouzz le Mer 2 Jan - 19:01

Ton post n'etait pas du tout inutile il nous a tous appris beaucoup de chose par contre le message au dessus du mien lui est inutile X)

_________________
[Vous devez être inscrit et connecté pour voir cette image]
Invité née le 0 a aujord'huis 0 ans et a posté 11 messages... je suis derrière vous

2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes

3x3x1 : 0.73secondes / 3x3x2 : 30.55secondes / 3x3x3 : 5.97secondes / 3x3x4 : 1.09minutes / 3x3x5 : 1.46minutes / 3x3x6 : 2.06minutes

megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07

nikitouzz
Platinum 1
Platinum 1

Sexe : Masculin
Age : 21
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :
  • - TI-Basic Z80
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
  • - TI-Basic 68K
  • - TI-Basic Nspire
Calculatrices :
  • - TI-73
  • - TI-76.fr
  • - TI-82 Stats.fr
  • - TI-83+
  • - TI-84+
  • - TI-92
  • - TI-Nspire
  • - TI-Nspire CX

TI-84+ SE


Revenir en haut Aller en bas

Re: mémoire non libérée

Message par jovasco le Mer 2 Jan - 19:23

si vous avez appris des choses, c'est l'essentiel. quand à mon apport sur le forum c'est une autre histoire... à suivre Flèche

jovasco
Argent 4
Argent 4

Age : 61
Messages : 80
Date d'inscription : 01/12/2012
Points Forum : 6
Points Concours : 0
Langages :
  • - TI-Basic Z80
Calculatrices :
  • - TI-80
  • - TI-82 Stats.fr
  • - TI-86
  • - TI-89

TI-82 Stats.fr


Revenir en haut Aller en bas

Re: mémoire non libérée

Message par Contenu sponsorisé Aujourd'hui à 15:37


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum