Page 1 sur 1

CasioPython 1.6 Graph 35/75+E: 255K de mémoire de travail !

Message non luPosté: 06 Jan 2019, 13:49
de critor
A la rentrée 2019 comme déjà annoncé le Python sera le seul langage de programmation préconisé pour l'enseignement de l'algorithmique au lycée en Seconde et Première.

Plusieurs calculatrices graphiques intègrent déjà une implémentation Python officielle dans leur dernière mise à jour, plus ou moins complète, fidèle et réussie selon le cas :
  • NumWorks avec MicroPython 1.9.4
  • Casio Graph 90+E avec MicroPython 1.9.4
  • HP Prime avec l'écriture Python de Xcas
  • le module externe TI-Python pour TI-83 Premium CE avec CircuitPython (dérivé de MicroPython)
9795Mais à côté de cela nous avons aussi plusieurs implémentations communautaires, bien évidemment inutilisables en mode examen à la différence :

La mémoire de travail c'est important en Python, surtout dans le cadre des fonctions récursives qui découlent de la composition de fonctions (actuel programme de Première S), qui semblent a priori assez mal gérées mais dont nous ne manquerons pas de reparler prochainement.

Les Casio Graph descendant de la Graph 85 de 2005 (Graph 25+Pro/25+E, Graph 35+USB/35+E, Graph 75/95) disposent en réalité d'une RAM interne de 512Kio accessible aux applications, mémoire que le système est loin d'utiliser intégralement. Il était donc bien dommage jusqu'à présent que CasioPython se contente de n'allouer que 30Ko et quelques pour le classement suivant :
  1. TI-Nspire avec 2,046Mo
  2. Casio Graph 90+E avec 1,027Mo
  3. Casio Graph 35+E/75+E avec 30,147Ko
  4. module TI-Python pour TI-83 Premium CE avec 17,443Ko
  5. calculatrice NumWorks avec 13,658Ko
  6. logiciel web NumWorks avec 5,946Ko

Pour cette rentrée de nouvelle année 2019, après un travail collectif de recherche sur Planète Casio auquel ont contribué notamment Lephenixnoir et Sentaro21, Zezombye démarre sur les chapeaux de roues avec une nouvelle mise à jour majeure de CasioPython, l'implémentation Python communautaire pour Casio Graph 35+E/75+E et compatibles. Cette nouvelle version 1.6 bénéficie d'une meilleure allocution mémoire pour les calculatrices équipées du processeur SH4 (ce qui est notamment le cas de toutes les Graph 25+E/35+E/75+/75+E).

Voyons de suite de quoi il en retourne avec notre script de test, pour lequel nous rappelons les tailles occupées :
  • 64 octets pour une liste vide
  • 8 octets par élément de liste supplémentaire
  • 24 octets pour un entier nul
  • 28 octets pour un entier court non nul
  • 49 octets pour une chaîne vide
  • 1 octet par caractère de chaîne supplémentaire
Code: Tout sélectionner
def mem():
  try:
    l=[]
    try:
      l+=[0]
      l+=[""]
      l[1]+="x"
      while True:
        try:
          l[1]+=l[1][l[0]:]
        except:
          if l[0]<len(l[1])-1:
            l[0]=len(l[1])-1
          else:
            raise(Exception)
    except:
      print("+",len(l)>1 and len(l[1]))
      return 64+8*len(l)+(len(l) and 24+4*(l[0]>0)+(len(l)>1 and 49+len(l[1])))+mem()
  except:
    return 0


1015510154Nous n'obtenons plus 30,147Ko mais 255,07Ko juste après un redémarrage, soit une progression effectivement extraordinaire, et légèrement moins si on a déjà commencé à travailler avec l'application ! :bj:

D'où le classement mis à jour :
  1. TI-Nspire avec 2,046Mo
  2. Casio Graph 90+E avec 1,027Mo
  3. Casio Graph 35+E/75+E avec 255,07Ko
  4. module TI-Python pour TI-83 Premium CE avec 17,443Ko
  5. calculatrice NumWorks avec 13,658Ko
  6. logiciel web NumWorks avec 5,946Ko
Félicitations à Zezombye et son application CasioPython qui arrive à creuser l'écart face à plusieurs implémentations Python officielles ! :bj:

Attention, pour une utilisation sur Graph 35+E / 35+USB, il faudra commencer par installer un système Graph 75 en suivant notre tutoriel.

Téléchargements :Source : https://www.planet-casio.com/Fr/program ... e=16#58891