π
<-
Chat plein-écran
[^]

Module TI-Python: test mémoire de travail et comparaisons

:32ti73: :32ti73e: :32ti73e2: :32ti76f: :32ti80: :32ti81: :32ti82: :32ti85: :32ti86: :32ti82s: :32ti82sf: :32ti82sfn: :32ti83: :32ti83p: :32ti83pb: :32ti83pr: :32ti83pfr: :32ti83pse: :32ti84p: :32ti84pse: :32ti84ppse: :32ti84pfr: :32ti84pcse: :32ti83pfrusb: :32ti82p: :32ti82a: :32ti84pce: :32ti83pce:
Online

Module TI-Python: test mémoire de travail et comparaisons

Unread postby critor » 05 Dec 2018, 14:01

La série d’articles continuée ici au sujet du module
TI-Python
est rédigée a posteriori et illustrée à l’aide des photos prises sur le stand de
Texas Instruments
aux journées APMEP 2018 et congrès UdPPC 2018.

Certaines photos ne correspondront ici pas exactement à ce qui est décrit, car nous avons amélioré le script utilisé entre les deux événements. Or malheureusement, il était beaucoup plus compliqué de prendre de bonnes photos au congrès
UdPPC
de par l'affluence nettement supérieure, le fait que seulement un module au lieu de deux était disponibles sur le stand pour tous ces visiteurs, ainsi que le fait que les stands ne disposaient cette fois-ci pas de cloisons à la différence mais consistaient en de simples tables alignées le long d'une allée et bien remplies - pas vraiment d'espace pour se poser. Mais au moins nous avons pu prendre note des résultats.

Dans tous les cas, notez que ces tests ont été réalisés sur un prototype non final, certes de niveau
DVT
et donc habituellement proche du produit final qui sera livré dans quelques mois. Mais il reste quand même possible que des choses évoquées changent d’ici-là, en bien ou en mal d’ailleurs.

En vous priant donc de bien vouloir nous excuser et en vous souhaitant bonne lecture.

En
MicroPython
sur ordinateur, on peut aisément connaître l'espace mémoire occupé par une liste grâce à la fonction
sys.getsizeof()
.

Mais comment faire sur calculatrice où nous ne disposons pas du module
sys
?

Une solution consister à tenter de remplir la mémoire de travail, et à supposer que l'espace occupé obéit aux mêmes règles :
  • 64 octets pour une liste vide
  • 8 octets par élement 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

Voici un script en ce sens :
Code: Select all
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


Ce script classe actuellement la concurrence niveau Python comme tel :
  1. avec
    2,046Mo
  2. Casio Graph 90+E
    avec
    1,027Mo
  3. avec
    30,147Ko
  4. calculatrice
    NumWorks
    avec
    13,658Ko
  5. logiciel web
    NumWorks
    avec
    5,946Ko

Image10028

100019942Et où se classe le module
TI-Python
pour
TI-83 Premium CE
là-dedans ?

Exécutons le script
(photos ci-contre prises avec une ancienne version du script qui faisait un calcul légèrement différent, mais l'affichage du script amélioré a été pris en note et est reconstitué ci-dessous)
:
Code: Select all
>>> from MEM import *
>>> mem()
+8192
+4095
+1024
+1024
+512
+512
+511
+128
+32
17443
>>>


Nous aurions donc
17,03Kio
d'espace de travail pour l'exécution des scripts sur le module
TI-Python
.
Et au sein de cet espace, le plus grand bloc de mémoire utilisable ferait
8Kio
.

Au classement final nous avons donc maintenant :
  1. avec
    2,046Mo
  2. Casio Graph 90+E
    avec
    1,027Mo
  3. 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

10016Notons que cette estimation est cohérente avec les spécifications de la puce
Atmel ATSAMD21
dont nous avons constaté la présence dans le module, annonçant
32Kio
de mémoire SRAM dont une partie est bien évidemment consommée par le
firmware
.


Le module
TI-Python
se classe donc à ce jour légèrement devant la calculatrice
NumWorks
en terme de mémoire de travail. Précisons que dans les deux cas ce n'est franchement pas beaucoup, ce qui va vite se sentir sur les fonctions récursives. Si il s'agit bien du matériel final tel que livré dans quelques mois, il n'y aurait qu'assez peu de marge de progression possible pour
TI
, nous approchons déjà les limites des possibilités du module. Par contre,
NumWorks
pourrait se donner la peine d'être un peu plus généreux avec la mémoire de travail de son
Python
, car disposant de
256Kio
de
RAM
à la différence...


Téléchargements
:

Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 78.9%
 
Posts: 31008
Images: 7334
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Module TI-Python: test mémoire de travail et comparaison

Unread postby Lephe » 06 Dec 2018, 21:24

Où se classe la HP Prime dans cette affaire ? Si je me souviens bien sur le Championnat des Pythons, il n'y avait pas moins de 16 Mo disponibles. La révision G2 apporte-t-elle quelque chose de nouveau ?
User avatar
LephePartner
Niveau 5: MO (Membre Overclocké)
Niveau 5: MO (Membre Overclocké)
Level up: 3.1%
 
Posts: 41
Joined: 15 Jun 2018, 19:53
Gender: Not specified

Online

Re: Module TI-Python: test mémoire de travail et comparaison

Unread postby critor » 06 Dec 2018, 21:33

La HP Prime est embêtante à classer.

Elle ne dispose pas d'un véritable interpréteur Python mais d'une couche de traduction, et réagit fort mal à nos scripts de tests.

Je crois que sur HP Prime il n'y a pas de limite à la mémoire de travail utilisable. Donc sur les 32Mio de SDRAM, on aurait droit à l'intégralité des 16Mo libres pour l'exécution d'un script Python.
Donc elle serait première, mais je n'en ai pas de preuve irréfutable à ce jour.
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 78.9%
 
Posts: 31008
Images: 7334
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Online

Re: Module TI-Python: test mémoire de travail et comparaison

Unread postby critor » 06 Dec 2018, 21:42

La HP Prime G2 est sur un tout autre plan astral. :p
Elle utilise une puce
SDRAM DDR3
externe : une
H5TQ2G63GFR
de chez
SK hynix
...
512 Mio
de capacité ! :#tritop#:
9785
En pratique, ça donne plutôt
246Mo
de libres utilisables en tant que mémoire de travail, mais ça n'en reste pas moins très supérieur à toute la concurrence existant à ce jour :
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 78.9%
 
Posts: 31008
Images: 7334
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Module TI-Python: test mémoire de travail et comparaison

Unread postby Lephe » 06 Dec 2018, 21:44

Hé hé, 512 Mo de RAM... j'en connais qui vont être surpris.

C'est noté ! Si tu as l'occasion de regrouper des liens vers l'ensemble des tests, je suis preneur ! Ce serait sans doute une bonne référence. :)
User avatar
LephePartner
Niveau 5: MO (Membre Overclocké)
Niveau 5: MO (Membre Overclocké)
Level up: 3.1%
 
Posts: 41
Joined: 15 Jun 2018, 19:53
Gender: Not specified

Online

Re: Module TI-Python: test mémoire de travail et comparaison

Unread postby critor » 06 Dec 2018, 21:48

Pour les tests à jour tenant compte du CasioPython pour Graph 35/75+E et du module externe TI-Python, tu as ça à date :
D'autres vont suivre. :)
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 78.9%
 
Posts: 31008
Images: 7334
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti


Return to News TI-z80 (TI-73, 76, 80, 81, 82, 83, 84, 85, 86)

Who is online

Users browsing this forum: No registered users and 9 guests

-
Search
-
Featured topics
"NumWorks++": Challenge de modification matérielle pour rajouter une puce de mémoire Flash !
Offre TI-Planet/Jarrety pour avoir la TI-83 Premium CE avec son chargeur pour 79,79€ port inclus !
Offre TI-Planet/Jarrety pour avoir la TI-Nspire CX CAS à seulement 130€ TTC port inclus!
Jailbreake ta TI-Nspire avec Ndless et profite des meilleurs jeux et applications !
Transforme ta TI-Nspire CX en console Game Boy Advance!
12345
-
Donations/Premium
For more contests, prizes, reviews, helping us pay the server and domains...
PayPal : paiement en ligne sécurisé - secure online payments
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 
-
Stats.
502 utilisateurs:
>435 invités
>61 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)