π
<-
Chat plein-écran
[^]

QCC 2020 épisode 4 : Python et tas (heap)

Re: QCC 2020 épisode 4 : Python et tas (heap)

Unread postby critor » 09 Aug 2020, 11:49

Merci @cent20, tout ce que tu proposes est intéressant. :)

cent20 wrote:- Le lien entre le CPU utilisé et la mémoire totale maximum disponible, ainsi que le % de mémoire accordé au heap et donc la capacité du constructeur à exploiter correctement son hardware.

Le problème est que nous n'avons pas de méthode universelle pour connaître la capacité exacte de la mémoire RAM sur les modèles à matériel fermé.
Donc si on ne peut pas tester sur tous les modèles, le critère ne pourra pas être comptabilisé au classement.

cent20 wrote:- La fragmentation de la mémoire et ses conséquences : l'année dernière, lors de l’exécution des scripts proposé ici pour évaluer la mémoire sur la NumWorks, on trouvait que le premier bloc mémoire faisait 4 ko puis plus tard après une mise à jour 8ko. Quels conséquences concrète cette fragmentation de la mémoire a t'-elle lors de l’exécution d'un script ?

En gros, pour la même quantité disponible une mémoire plus fragmentée t'interdira de gros objets.
Tu pourras tout aussi bien la remplir, mais avec plusieurs objets plus petits.

Après, il y a de l'aléatoire intervenant déjà sur la quantité totale de heap disponible, même si nous avons finalement réussi à contourner le problème de façon assez fiable ici, ce qui n'était pas le cas l'année dernière. On s'améliore chaque année. :)
Tout ça pour dire que cet aléatoire interviendra aussi dans la fragmentation, et qu'il faudrait donc un protocole pour contourner cela.

Tu peux déjà consulter la fragmentation mémoire avec le script fourni, il suffit d'appeler mem() au lieu de mem(0).

On pourrait s'arrêter au 1er bloc de mémoire contiguë qui a pu être alloué et tenter de le maximiser de façon similaire, mais j'ignore a priori si c'est donc possible/fiable sans le module gc.
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 42.4%
 
Posts: 41497
Images: 14640
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: QCC 2020 épisode 4 : Python et tas (heap)

Unread postby Afyu » 09 Aug 2020, 11:58

Super article ! Merci Critor ! :D

La modeste taille du heap sur la NumWorks est un peu embêtante lorsqu'on a besoin de gros objets.
Pour mon Jeu de la Vie (vive l'autopromotion :bj: : https://tiplanet.org/forum/archives_voir.php?id=2639179), j'ai du rassembler ma liste qui gère l'état (vivante ou morte) des cellules et ma liste qui gère l'âge des cellules en une seule, pour pouvoir dépasser la taille de 32×53 pour ma grille, sans risquer d'avoir une erreur mémoire (en deux listes : https://workshop.numworks.com/python/florian-allard/conway4 en une liste : https://workshop.numworks.com/python/florian-allard/conway5).
Oui c'est sûr : quelle idée aussi de vouloir considérer l'âge des cellules ?! :D

Maxou09 wrote:Il serait bon aussi de parler des modes d’emploi accessibles pour chaque calculatrices. Certaines ayant des fonctions/commandes différentes.


Mais celui de la NumWorks n'existe pas, je crois. :troll:
User avatar
AfyuVIP++
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 90.9%
 
Posts: 355
Images: 18
Joined: 30 Oct 2019, 19:17
Gender: Male
Calculator(s):
MyCalcs profile
Class: plutôt, oui :)

Re: QCC 2020 épisode 4 : Python et tas (heap)

Unread postby parisse » 09 Aug 2020, 12:11

J'ai fait une archive avec juste le repertoire external de Delta ici https://www-fourier.univ-grenoble-alpes.fr/~parisse/numworks/external.tgz
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 78%
 
Posts: 3511
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: QCC 2020 épisode 4 : Python et tas (heap)

Unread postby critor » 09 Aug 2020, 12:12

Merci @parisse et @M4x1m3 pour vos échanges constructifs qui nous remplissent d'espoir. :favorite:

Merci également @Maxou09 pour ton retour. :)

@Afyu
Tu as raison, il nous faudrait une nouvelle révision matérielle, une superbe NumWorks N0120. ;)
Avec je l'espère une RAM correctement dimensionnée pour permettre au minimum 1 Mo de heap; de quoi coder des projets Python sans avoir à craindre pour la mémoire à chaque nouvelle ligne ajoutée à partir de quelques kilooctets de code. :D
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 42.4%
 
Posts: 41497
Images: 14640
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: QCC 2020 épisode 4 : Python et tas (heap)

Unread postby Afyu » 09 Aug 2020, 12:23

Oui !!
C'est M. Parisse qui a proposé une N0120 mais je suis d'accord avec lui et avec toi.

Pour mon Jeu de la Vie, j'ai dépassé 9,7 ko et ça a fini par coincer. Alors j'ai optimisé et encore optimisé. C'est sûrement pas optimisé au maximum mais je suis à 7,9 ko et ça se passe bien :)
Mais je ne peux quand même pas prendre une taille de cellule inférieure à 5 pixels, sinon la grille comporte trop de lignes et trop de colonnes et la liste qui stocke tout ça est trop grande et la mémoire ne suit pas (ou alors ça tient seulement quelques générations puis ça plante). Donc ma plus grande grille fait 64 par 44. Snif. Pour une grille plus grande, on peut peut-être s'en sortir en remplaçant cette liste qui stocke l'état des cellules par une gestion complète avec get_pixel mais pour gérer le nombre de voisins, il faudrait quand même stocker l'état d'au moins 2 ou 3 lignes de la grille, le temps de faire le traitement.
User avatar
AfyuVIP++
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 90.9%
 
Posts: 355
Images: 18
Joined: 30 Oct 2019, 19:17
Gender: Male
Calculator(s):
MyCalcs profile
Class: plutôt, oui :)

Re: QCC 2020 épisode 4 : Python et tas (heap)

Unread postby Noury » 09 Aug 2020, 12:32

J'ai une question.
Est-ce qu'une N0120, donc juste meilleur hardware, serait mieux qu'une TI-Nspire ou une HP Prime ?
User avatar
NouryVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 52.8%
 
Posts: 287
Joined: 07 Sep 2018, 09:19
Location: Sceaux, France 92
Gender: Male
Calculator(s):
MyCalcs profile

Re: QCC 2020 épisode 4 : Python et tas (heap)

Unread postby cent20 » 09 Aug 2020, 12:46

Afyu wrote:Pour mon Jeu de la Vie (vive l'autopromotion :bj: : https://tiplanet.org/forum/archives_voir.php?id=2639179), j'ai du rassembler ma liste qui gère l'état (vivante ou morte) des cellules et ma liste qui gère l'âge des cellules en une seule, pour pouvoir dépasser la taille de 32×53 pour ma grille, sans risquer d'avoir une erreur mémoire (en deux listes : https://workshop.numworks.com/python/florian-allard/conway4 en une liste : https://workshop.numworks.com/python/florian-allard/conway5). Oui c'est sûr : quelle idée aussi de vouloir considérer l'âge des cellules ?! :D


Très sympa cette version : https://workshop.numworks.com/python/fl ... ay_complet
Le menu de départ est original et les réglages possibles absolument dingues, même si les tabulation "flottantes" sont discutables. Cela confirme donc qu'à partir de 8ko cela devient difficile de faire tourner un script.
Image
Enseignant de mathématiques et d'informatique. Spécialité NSI : Des projets, des tutos, mais aussi de l'art
Calculatrice NumWorks : Des applications et des jeux, scripts, 📙 Découvrir la NumWorks
User avatar
cent20VIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 46.1%
 
Posts: 1013
Images: 64
Joined: 17 May 2012, 09:49
Location: Avignon
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: nsi_xyz

Re: QCC 2020 épisode 4 : Python et tas (heap)

Unread postby cent20 » 09 Aug 2020, 12:48

nbenm wrote:J'ai une question.
Est-ce qu'une N0120, donc juste meilleur hardware, serait mieux qu'une TI-Nspire ou une HP Prime ?


La N0120 n'existe que dans nos têtes pour l'instant... :D
Ceci dit, plus on en parle, plus elle peut devenir réalité.
Image
Enseignant de mathématiques et d'informatique. Spécialité NSI : Des projets, des tutos, mais aussi de l'art
Calculatrice NumWorks : Des applications et des jeux, scripts, 📙 Découvrir la NumWorks
User avatar
cent20VIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 46.1%
 
Posts: 1013
Images: 64
Joined: 17 May 2012, 09:49
Location: Avignon
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: nsi_xyz

Re: QCC 2020 épisode 4 : Python et tas (heap)

Unread postby redgl0w » 09 Aug 2020, 12:48

Afyu wrote:Mais celui de la NumWorks n'existe pas, je crois. :troll:

https://www.numworks.com/fr/ressources/manuel/
Image
User avatar
redgl0wVIP+
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 58.6%
 
Posts: 283
Images: 0
Joined: 30 Oct 2019, 20:36
Location: Centre Val de Loire
Gender: Male
Calculator(s):
MyCalcs profile
Class: MP2I
Twitter: Gl0wRed
GitHub: RedGl0w

Re: QCC 2020 épisode 4 : Python et tas (heap)

Unread postby Afyu » 09 Aug 2020, 12:54

cent20 wrote:Très sympa cette version : https://workshop.numworks.com/python/fl ... ay_complet
Le menu de départ est original et les réglages possibles absolument dingues, même si les tabulation "flottantes" sont discutables. Cela confirme donc qu'à partir de 8ko cela devient difficile de faire tourner un script.


Il y a d'autres choses qui sont discutables, d'ailleurs. xD
Par exemple, en mode "au choix" on peut placer soi-même les cellules. Et dans certains cas (lorsque l'espace entre deux cellules est petit) le déplacement du curseur efface le bord de certaines cellules en passant. J'ai ajouté des lignes (l. 170 à 188) pour que ces bords ou morceaux de cellules effacés soient retracés. C'est esthétique mais relativement inutile étant donné que tout se passe bien ensuite lorsqu'on lance l'exécution une fois notre placement au choix terminé.

redgl0w wrote:
Afyu wrote:Mais celui de la NumWorks n'existe pas, je crois. :troll:

https://www.numworks.com/fr/ressources/manuel/


Oui, il en existe également une version papier. J'ai même une version papier du manuel d'utilisation de la N0100 avec en dernière page la liste des améliorations prévues mais pas encore implémentées. :)
Last edited by Afyu on 09 Aug 2020, 13:04, edited 5 times in total.
User avatar
AfyuVIP++
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 90.9%
 
Posts: 355
Images: 18
Joined: 30 Oct 2019, 19:17
Gender: Male
Calculator(s):
MyCalcs profile
Class: plutôt, oui :)

PreviousNext

Return to News Divers

Who is online

Users browsing this forum: No registered users and 74 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1215 utilisateurs:
>1176 invités
>34 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)