π
<-
Chat plein-écran
[^]

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

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

Message non lude critor » 09 Aoû 2020, 11:49

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

cent20 a écrit:- 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 a écrit:- 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
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41465
Images: 14479
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

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

Message non lude Afyu » 09 Aoû 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 a écrit: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:
Avatar de l’utilisateur
AfyuVIP++
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 90.1%
 
Messages: 339
Images: 18
Inscription: 30 Oct 2019, 19:17
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: plutôt, oui :)

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

Message non lude parisse » 09 Aoû 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
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 77.2%
 
Messages: 3500
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

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

Message non lude critor » 09 Aoû 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
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41465
Images: 14479
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

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

Message non lude Afyu » 09 Aoû 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.
Avatar de l’utilisateur
AfyuVIP++
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 90.1%
 
Messages: 339
Images: 18
Inscription: 30 Oct 2019, 19:17
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: plutôt, oui :)

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

Message non lude Noury » 09 Aoû 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 ?
Avatar de l’utilisateur
NouryVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 52.6%
 
Messages: 287
Inscription: 07 Sep 2018, 09:19
Localisation: Sceaux, France 92
Genre: Homme
Calculatrice(s):
MyCalcs profile

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

Message non lude cent20 » 09 Aoû 2020, 12:46

Afyu a écrit: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
Avatar de l’utilisateur
cent20VIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 45.9%
 
Messages: 1009
Images: 64
Inscription: 17 Mai 2012, 09:49
Localisation: Avignon
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: nsi_xyz

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

Message non lude cent20 » 09 Aoû 2020, 12:48

nbenm a écrit: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
Avatar de l’utilisateur
cent20VIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 45.9%
 
Messages: 1009
Images: 64
Inscription: 17 Mai 2012, 09:49
Localisation: Avignon
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: nsi_xyz

En ligne

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

Message non lude redgl0w » 09 Aoû 2020, 12:48

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

https://www.numworks.com/fr/ressources/manuel/
Image
Avatar de l’utilisateur
redgl0wVIP+
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Prochain niv.: 56.8%
 
Messages: 283
Images: 0
Inscription: 30 Oct 2019, 20:36
Localisation: Centre Val de Loire
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: MP2I
Twitter/X: Gl0wRed
GitHub: RedGl0w

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

Message non lude Afyu » 09 Aoû 2020, 12:54

cent20 a écrit: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 a écrit:
Afyu a écrit: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. :)
Dernière édition par Afyu le 09 Aoû 2020, 13:04, édité 5 fois.
Avatar de l’utilisateur
AfyuVIP++
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 90.1%
 
Messages: 339
Images: 18
Inscription: 30 Oct 2019, 19:17
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: plutôt, oui :)

PrécédenteSuivante

Retourner vers News Divers

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 38 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
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
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
2512 utilisateurs:
>2495 invités
>12 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)