π
<-
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: 8.5%
 
Posts: 35928
Images: 9788
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti
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
AfyuGénéreux
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 65%
 
Posts: 118
Images: 3
Joined: 30 Oct 2019, 19:17
Gender: Male
Calculator(s):
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: 8.3%
 
Posts: 2160
Joined: 13 Dec 2013, 16:35
Gender: Not specified

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: 8.5%
 
Posts: 35928
Images: 9788
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti
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
AfyuGénéreux
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 65%
 
Posts: 118
Images: 3
Joined: 30 Oct 2019, 19:17
Gender: Male
Calculator(s):
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: 14.4%
 
Posts: 242
Joined: 07 Sep 2018, 09:19
Location: Sceaux, France 92
Gender: Male
Calculator(s):

Online

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 de spécialité NSI ( projets, tutos ...)
:favorite: NumWork, Python : démineur, snake, tétris
User avatar
cent20Premium
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 3%
 
Posts: 475
Images: 37
Joined: 17 May 2012, 09:49
Location: Avignon
Gender: Male
Calculator(s):
Twitter: nsi_xyz

Online

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 de spécialité NSI ( projets, tutos ...)
:favorite: NumWork, Python : démineur, snake, tétris
User avatar
cent20Premium
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 3%
 
Posts: 475
Images: 37
Joined: 17 May 2012, 09:49
Location: Avignon
Gender: Male
Calculator(s):
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/
User avatar
redgl0wGénéreux
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Level up: 70.8%
 
Posts: 92
Joined: 30 Oct 2019, 20:36
Gender: Male
Calculator(s):
Class: 2nde
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
AfyuGénéreux
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 65%
 
Posts: 118
Images: 3
Joined: 30 Oct 2019, 19:17
Gender: Male
Calculator(s):
Class: plutôt, oui :)

PreviousNext

Return to News Divers

Who is online

Users browsing this forum: No registered users and 15 guests

-
Search
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Découvre les nouvelles fonctionnalités en Python de l'OS 5.2 pour les Nspire CX II
Découvre les nouvelles fonctionnalités en Python de l'OS 5.5 pour la 83PCE/84+C-T Python Edition
Omega, le fork étendant les capacités de ta NumWorks, même en mode examen !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

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.
611 utilisateurs:
>595 invités
>10 membres
>6 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)