Quelle Calculatrice programmable Choisir 2019 - Episode 6
Performances et Python
Nous clôturons aujourd'hui la série des nouveaux tests
Dans un premier temps, nous allons évaluer les performances de calcul en virgule flottante grâce à un programme dans le langage historique de chaque machine. Parce que le langage historique est normalement le plus intégré au système et illustre ainsi bien les performances globales. Prenons pour cela le script
Nous allons réaliser le test dans deux contextes :
En effet la plupart des calculatrices offrent le choix d'obtenir des résultat décimaux ou exacts lorsque possible, et selon le mode courant cela peut influer sur les performances.
Si l'on se donne la peine de régler le mode numérique, l'appel
Revenons donc maintenant en mode exact, fonctionnement donc par défaut des machines si on ne fait pas attention. Pour le même appel
Avec le même script, passons maintenant sur l'évaluateur
Mais contrairement à la plupart des langages historiques, le
L'appel
Avant de conclure, une petite page de publicité pour la plus grande arnaque jamais vendue parmi les calculatrices graphiques en rayon scolaire :
A très bientôt pour le classement final de rentrée 2019 à la fois pour les BAC 2020 et 2021+ !
QCC 2019
, avec les performances.Dans un premier temps, nous allons évaluer les performances de calcul en virgule flottante grâce à un programme dans le langage historique de chaque machine. Parce que le langage historique est normalement le plus intégré au système et illustre ainsi bien les performances globales. Prenons pour cela le script
Python
suivant, qui sera traduit ligne à ligne pour chaque calculatrice :- Code: Select all
try:
from time import *
except:
pass
def hastime():
try:
monotonic()
return True
except:
return False
def seuil(d):
timed,n=hastime(),0
start,u=0 or timed and monotonic(),2.
d=d**2
while (u-1)**2>=d:
u=1+1/((1-u)*(n+1))
n=n+1
return [(timed and monotonic() or 1)-start,n,u]
Nous allons réaliser le test dans deux contextes :
- le contexte exact, le plus souvent par défaut et inutile ici
- le contexte numérique (calculs décimaux approchés)optimal pour ce script
En effet la plupart des calculatrices offrent le choix d'obtenir des résultat décimaux ou exacts lorsque possible, et selon le mode courant cela peut influer sur les performances.
Si l'on se donne la peine de régler le mode numérique, l'appel
seuil(0.008)
donne le classement suivant :- 0,498s:NumWorks N0110(32 bits : Cortex-M7/ARMv7 @216MHz)
- 0,688s:HP Prime G2(32 bits : Cortex-A7/ARMv7 @528MHz)
- 0,785s:NumWorks N0100(32 bits : Cortex-M4/ARMv7 @100MHz)
- 2,19s:Casio Graph 35+E II
- 2,23s:Casio Graph 35/75+E
- 2,37s:Casio Graph 90+E
- 2,41s:HP Prime G1(32 bits : ARM9/ARMv5 @400MHz)
- 3,75s:Casio Graph 90+E(32 bits : SH4 @117,96MHzavec l'interpréteur C.Basic)
- 8,93s:TI-Nspire CX II(32 bits : ARM9/ARMv5 @396MHz)
- 10,02s:TI-Nspire
- 11,11s:Casio Graph 35+E II(32 bits : SH4 @58,98avec l'interpréteur C.Basic)
- 12,24s:TI-Nspire(32 bits : ARM9/ARMv5 @120MHz)
- 12,9s:Casio Graph 35/75+E(32 bits : SH4 @29,49MHzavec l'interpréteur C.Basic)
- 18,64s:TI-Nspire CX CR4+(révisions W+)
- 18,94s:TI-Nspire CX CR4+(révisions W+)(32 bits : ARM9/ARMv5 @156MHz)
- 19,56s:TI-Nspire CX(révisions A-V)
- 20,92s:TI-Nspire CX(révisions A-V)(32 bits : ARM9/ARMv5 @132MHz)
- 25,26s:Casio Graph 35/75+E
- 29,31s:Casio Graph 35+E II
- 38,15s:Casio Graph 90+E
- 50,77s:Casio Graph 90+E(32 bits : SH4 @117,96MHz)
- 81,03s:Casio Graph 35+E II(32 bits : SH4 @58,98MHz)
- 101,1s:Casio Graph 35/75+E(32 bits : SH4 @29,49MHz)
- 117,29s:Casio Graph 25+E(32 bits : SH4 @29,49MHz)
- 120,51s:TI-83 Premium CE Edition Python/TI-84 Plus CE-T(révisions M+)(8 + 32 bits : eZ80 @48MHz)
- 171,31s:TI-83 Premium CE/TI-84 Plus CE-T(révisions A-L)(8 bits : eZ80 @48MHzaccéléré via AWSC)
- 196,79s:TI-83 Premium CE/TI-84 Plus CE-T(révisions A-L)(8 bits : eZ80 @48MHz)
- 260,41s:TI-82 Advanced/TI-84 Plus T(8 bits : z80 @15MHz)
- 607,91s:Casio fx-CP400+E(32 bits : SH4 @117,96MHz)
- 672,65s:Casio fx-92+ Spéciale Collège(8 bits : nX-U8/100 >1,5MHz- spécifications ancien modèle fx-92 Collège 2D+, non confirmées sur le nouveau)
- ≈798,18s:Esquisse GCEXFR/Lexibook GC3000FR(non programmable, estimation relative par comparaison des performances en tracé de graphes avec le modèle le plus proche technologiquement, laTI-82 Advanced)
Revenons donc maintenant en mode exact, fonctionnement donc par défaut des machines si on ne fait pas attention. Pour le même appel
seuil(0.008)
il y a quelques changements :- 0,498s:NumWorks N0110(32 bits : Cortex-M7/ARMv7 @216MHz)
- 0,785s:NumWorks N0100(32 bits : Cortex-M4/ARMv7 @100MHz)
- 2,19s:Casio Graph 35+E II
- 2,23s:Casio Graph 35/75+E
- 2,37s:Casio Graph 90+E
- 3,75s:Casio Graph 90+E(32 bits : SH4 @117,96MHzavec l'interpréteur C.Basic)
- 11,11s:Casio Graph 35+E II(32 bits : SH4 @58,98avec l'interpréteur C.Basic)
- 11,26s:TI-Nspire CX II(32 bits : ARM9/ARMv5 @396MHz)
- 12,9s:Casio Graph 35/75+E(32 bits : SH4 @29,49MHzavec l'interpréteur C.Basic)
- 16,3s:TI-Nspire
- 16,51s:HP Prime G2(32 bits : Cortex-A7/ARMv7 @528MHz)
- 20,32s:TI-Nspire(32 bits : ARM9/ARMv5 @120MHz)
- 23,6s:TI-Nspire CX CR4+(révisions W+)
- 24,45s:TI-Nspire CX(révisions A-V)
- 25,23s:TI-Nspire CX CR4+(révisions W+)(32 bits : ARM9/ARMv5 @156MHz)
- 25,26s:Casio Graph 35/75+E
- 28,42s:TI-Nspire CX(révisions A-V)(32 bits : ARM9/ARMv5 @132MHz)
- 29,31s:Casio Graph 35+E II
- 38,15s:Casio Graph 90+E
- 43,13s:HP Prime G1(32 bits : ARM9/ARMv5 @400MHz)
- 50,77s:Casio Graph 90+E(32 bits : SH4 @117,96MHz)
- 81,03s:Casio Graph 35+E II(32 bits : SH4 @58,98MHz)
- 104,05s:Casio Graph 35/75+E(32 bits : SH4 @29,49MHz)
- 119,57s:Casio Graph 25+E(32 bits : SH4 @29,49MHz)
- 152,27s:TI-83 Premium CE Edition Python/TI-84 Plus CE-T(révisions M+)(8 bits : eZ80 @48MHz)
- 262,82s:TI-82 Advanced/TI-84 Plus T(8 bits : z80 @15MHz)
- 311,51s:TI-83 Premium CE/TI-84 Plus CE-T(révisions A-L)(8 bits : eZ80 @48MHzaccéléré via AWSC)
- 355,52s:TI-83 Premium CE/TI-84 Plus CE-T(révisions A-L)(8 bits : eZ80 @48MHz)
- 672,65s:Casio fx-92+ Spéciale Collège(8 bits : nX-U8/100 >1,5MHz- spécifications ancien modèle fx-92 Collège 2D+, non confirmées sur le nouveau)
- ≈798,18s:Esquisse GCEXFR/Lexibook GC3000FR(non programmable, estimation relative par comparaison des performances en tracé de graphes avec le modèle le plus proche technologiquement, laTI-82 Advanced)
- 9297,47s:Casio fx-CP400+E(32 bits : SH4 @117,96MHz)
Avec le même script, passons maintenant sur l'évaluateur
Python
lorsque disponible. L'appel seuil(0.008)
nous donne :- 0,27s:TI-Nspire CX(révisions A-V)
- 0,376s:HP Prime G2(32 bits : Cortex-A7/ARMv7 @528MHz)
- 0,38s:TI-Nspire
- 0,47s:TI-Nspire(32 bits : ARM9/ARMv5 @120MHzavec l'interpréteur MicroPython)
- 0,48s:TI-Nspire CX(révisions A-V)(32 bits : ARM9/ARMv5 @132MHzavec l'interpréteur MicroPython)
- 0,498s:NumWorks N0110(32 bits : Cortex-M7/ARMv7 @216MHz)
- 0,53s:TI-Nspire CX CR4+(révisions W+)
- 0,59s:Casio Graph 35/75+E
- 0,68s:TI-Nspire CX CR4+(révisions W+)(32 bits : ARM9/ARMv5 @156MHzavec l'interpréteur MicroPython)
- 0,785s:NumWorks N0100(32 bits : Cortex-M4/ARMv7 @100MHz)
- 0,79s:Casio Graph 35+E II
- 1,61s:HP Prime G1(32 bits : ARM9/ARMv5 @400MHz)
- 1,86s:Casio Graph 35+E II
- 2,15s:Casio Graph 90+E
- 2,96s:Casio Graph 35+E II
- 3,27s:Casio Graph 90+E(32 bits : SH4 @117,96MHz)
- 3,65s:Casio Graph 90+E
- 3,73s:TI-83 Premium CE+ module externeTI-Python(8 + 32 bits : eZ80 @48MHz+ Cortex-M0+/ARMv6 @48MHz)
- 3,9s:Casio Graph 35+E II(32 bits : SH4 @58,98avec l'interpréteur CasioPython)
- 3,93s:TI-83 Premium CE Edition Python(8 + 32 bits : eZ80 @48MHz+ Cortex-M0+/ARMv6 @48MHz)
- 4s:Casio Graph 35/75+E(32 bits : SH4 @29,49MHzavec l'interpréteur CasioPython)
- 4,4s:TI-83 Premium CE+ module externeTI-Python
- 5,48s:Casio Graph 90+E(32 bits : SH4 @117,96MHzavec l'interpréteur KhiCAS)
- 9,21s:Casio Graph 35+E II(32 bits : SH4 @58,98MHz)
- 13,93s:Casio Graph 35+E II(32 bits : SH4 @58,98MHzavec l'interpréteur KhiCAS)
Mais contrairement à la plupart des langages historiques, le
Python
distingue les nombres entiers des nombres flottants. Voici donc un script pour tester les calculs entiers en Python
:- Code: Select all
try:from time import monotonic
except:pass
def hastime():
try:
monotonic()
return True
except:return False
def nodivisorin(n,l):
for k in l:
if n//k*k==n:
return False
return True
def isprimep(n):
t=hastime()
s,l,k=0 or t and monotonic(),[3],7
if n==2 or n==5:return True
if int(n)!=n or n//2*2==n or n//5*5==5:
return False
if n<k:return n in l
while k*k<n:
if nodivisorin(k,l):l.append(k)
k+=2+2*((k+2)//5*5==k+2)
r=nodivisorin(n,l)
return (t and monotonic() or 1)-s,r
L'appel
isprimep(10000019)
nous donne donc le classement suivant en calcul entier :- 0,42s:TI-Nspire CX(révisions A-V)
- 0,57s:TI-Nspire
- 0,58s:Casio Graph 35/75+E
- 0,581s:NumWorks N0110(32 bits : Cortex-M7/ARMv7 @216MHz)
- 0,59s:Casio Graph 35+E II
- 0,62s:TI-Nspire CX(révisions A-V)(32 bits : ARM9/ARMv5 @132MHzavec l'interpréteur MicroPython)
- 0,63s:TI-Nspire CX CR4+(révisions W+)
- 0,67s:TI-Nspire(32 bits : ARM9/ARMv5 @120MHzavec l'interpréteur MicroPython)
- 0,86s:Casio Graph 35+E II
- 0,99s:TI-Nspire CX CR4+(révisions W+)(32 bits : ARM9/ARMv5 @156MHzavec l'interpréteur MicroPython)
- 1,08s:Casio Graph 90+E
- 1,17s:NumWorks N0100(32 bits : Cortex-M4/ARMv7 @100MHz)
- 1,58s:Casio Graph 90+E(32 bits : SH4 @117,96MHz)
- 3,02s:Casio Graph 35+E II(32 bits : SH4 @58,98avec l'interpréteur CasioPython)
- 4,39s:Casio Graph 35+E II(32 bits : SH4 @58,98MHz)
- 4,42s:HP Prime G2(32 bits : Cortex-A7/ARMv7 @528MHz)
- 4,98s:Casio Graph 35/75+E(32 bits : SH4 @29,49MHzavec l'interpréteur CasioPython)
- 8,1s:TI-83 Premium CE+ module externeTI-Python(8 + 32 bits : eZ80 @48MHz+ Cortex-M0+/ARMv6 @48MHz)
- 9s:TI-83 Premium CE Edition Python(8 + 32 bits : eZ80 @48MHz+ Cortex-M0+/ARMv6 @48MHz)
- 11,26s:TI-83 Premium CE+ module externeTI-Python
- 16,05s:HP Prime G1(32 bits : ARM9/ARMv5 @400MHz)
- 19,06s:Casio Graph 35+E II
- 22,77s:Casio Graph 90+E
- 32,76s:Casio Graph 90+E(32 bits : SH4 @117,96MHzavec l'interpréteur KhiCAS)
- 91,71s:Casio Graph 35+E II(32 bits : SH4 @58,98MHzavec l'interpréteur KhiCAS)
Avant de conclure, une petite page de publicité pour la plus grande arnaque jamais vendue parmi les calculatrices graphiques en rayon scolaire :
Si les performances ont de l'importance pour toi, les meilleurs choix sont donc :

Citons également la
- la NumWorks N0110pour les performances générales
- la TI-Nspire CX(révision A-V)pour lePython(hors mode examen uniquement
)
- la HP Prime G2pour lePythonen mode examen
NumWorks N0110
, dans le sens où contrairement aux autres elle ne s'effondre pas dans les classements où elle n'est pas première, et en prime sans aucun besoin d'installation d'application additionnelle ou d'overclocking
! 
Citons également la
Casio Graph 35+E II
qui, munie des bons outils hors mode examen (CasioPython et Ftune3)
s'en sort remarquablement bien par rapport à son prix, d'environ ~60€ seulement, sur lequel Casio
te rembourse en prime 10€ pour tout achat à neuf d'ici le 30 septembre ! 
A très bientôt pour le classement final de rentrée 2019 à la fois pour les BAC 2020 et 2021+ !
