Page 1 of 3

L'OS 3.9 améliorerait-il notablement la vitesse du Lua ?

Unread postPosted: 06 Jun 2014, 18:52
by Adriweb
Après avoir effectué quelques tests succincts du Lua sur l'OS 3.9, on se rend compte qu'il y a des différences de vitesse qui ne sont pas négligeables...

Je vous laisse constater par vous même avec cette courte vidéo faite pour l'occasion :


Précision : les deux calculatrices sont des CX CAS avec l'OS (3.6 et 3.9) de base sans modifications (sans Ndless et pas lancé avec nLaunchy).

J'ai tout de même reconfirmé l'expérience une fois les deux calculatrices chargées à 100% (au cas où ce facteur influence les performances...) mais cela n'a fait aucune différence :)
A l'aide d'un chronomètre et après un savant calcul de pourcentage, j'ai mesuré le temps nécessaire pour que le carré effectue 30 rebonds.
Et là, on atterrit sur un chiffre qui n'est pas des moindres : on mesure une différence d'environ 25% ! :o

La seule chose qui change (autre que la version d'OS, bien sûr), est que la calculatrice en OS 3.6 est une HW-A, et celle en 3.9 est une HW-F.

Si à tout hasard, vous voulez vous aussi tester le script, voici le code source (et le .tns en pièce jointe) : (enter pour démarrer/arreter, esc pour reset)
Show/Hide spoilerAfficher/Masquer le spoiler
Code: Select all
platform.apilevel = '2.4'     

-- Quick speed test with a bouncing square
-- Adriweb  -  tiplanet.org

local dirX, dirY = 1, 1
local x, y = 0, 0 -- will be overwritten
local hits = 0
local side = 20
local startTime, endTime = 0, 0
local running = false
local finished = false

function on.resize(w, h)
    W, H = w, h
    x, y = .5*w, .5*h
end

function on.timer()
    x, y = x+2*dirX, y+2*dirY
    if x>=W-side or x<=0 then hits = hits + 1; dirX = -dirX end
    if y>=H-side or y<=0 then hits = hits + 1; dirY = -dirY end
    if hits == 25 then
        timer.stop(); running = false; finished = true
        endTime = timer.getMilliSecCounter()
    end
    platform.window:invalidate()
end

function on.paint(gc)
    gc:fillRect(x, y, side, side)
    gc:drawString(hits, 5, 5, "top")
    if finished then gc:drawString((endTime-startTime)/1000, 5, H-25, "top") end
end

function on.enterKey()
    if running then
        timer.stop()
    else
        startTime = timer.getMilliSecCounter()
        finished = false
        timer.start(0.01)
    end
    running = not running
end

function on.escapeKey()
    timer.stop()
    running = false; finished = false
    hits = 0
    dirX, dirY = 1, 1
    x, y = .5*W, .5*H
    platform.window:invalidate()
end


En attendant, si ce n'est pas un problème qui vient de ma calculatrice sous OS 3.6, on peut j'imagine remercier TI :P

Re: L'OS 3.9 améliorerait-il notablement la vitesse du Lua ?

Unread postPosted: 06 Jun 2014, 19:10
by Extra44
Hello

Ton programme utilise un timer (0.01 s ). Donc ce n'est pas vraiment un programme de test de la rapidité du langage lua.... non ?
De plus j'ai l'impression qu'avec ton programme on voit plutot que l' OS 3.9 semblerait overclocké...
C'est mon impression. ..
Par contre je suis d'accord qu'il faut pousser les tests. .. :D

Re: L'OS 3.9 améliorerait-il notablement la vitesse du Lua ?

Unread postPosted: 06 Jun 2014, 19:16
by Adriweb
Je parle bien sûr du Nspire-Lua (donc en gros de tout ce que TI a rajouté au langage pour garantir le lien avec la plateforme), pas du langage Lua en lui-même :)

Concernant l'overclock, ben... une simple boucle for i,0,100 disp i endfor tourne plus vite sur la 3.6 que la 3.9, donc... je ne sais pas ce qu'ils ont fait...

Re: L'OS 3.9 améliorerait-il notablement la vitesse du Lua ?

Unread postPosted: 06 Jun 2014, 19:18
by critor
Si il y a une différence avec un timer de 0.01s, c'est qu'au moins l'une des deux calculatrices met plus de 0.01s pour effectuer l'action du timer.

Donc il y aurait bien une accélération, mais ce n'est en effet pas un test permettant de donner de façon fiable le gain de performances en pourcents.

Re: L'OS 3.9 améliorerait-il notablement la vitesse du Lua ?

Unread postPosted: 06 Jun 2014, 19:32
by Extra44
Adriweb : on est bien d'accord sur le Nspire_lua ;)

De toutes façon je pense bien qu'il faudrait creuser le sujet ...

Re: L'OS 3.9 améliorerait-il notablement la vitesse du Lua ?

Unread postPosted: 06 Jun 2014, 19:46
by Adriweb
critor wrote:Si il y a une différence avec un timer de 0.01s, c'est qu'au moins l'une des deux calculatrices met plus de 0.01s pour effectuer l'action du timer.

Pas forcément, non : la différence peut parfaitement se trouver dans le temps de dessin (donc le on.paint), et non de calcul (on.timer).

critor wrote:Donc il y aurait bien une accélération, mais ce n'est en effet pas un test permettant de donner de façon fiable le gain de performances en pourcents.

Peut-être - comme dit Extra44, il faudrait un peu plus creuser le sujet, mais mon "25%" est bien évidemment relatif à ce test en particulier, pas de "tous les scripts" Lua. Dans tous les cas, si c'est dans le timer que ça va plus vite, c'est bien pour les calculs, et si c'est dans le dessin, c'est d'autant mieux pour les jeux etc. :)

Re: L'OS 3.9 améliorerait-il notablement la vitesse du Lua ?

Unread postPosted: 06 Jun 2014, 21:44
by yatto
Vous voulez dire qu'il serait possible que TI aient fait une ... amélioration dans leur OS ?

Image

Re: L'OS 3.9 améliorerait-il notablement la vitesse du Lua ?

Unread postPosted: 06 Jun 2014, 21:45
by Extra44
Mouarf ! :D

+1 ;)

Re: L'OS 3.9 améliorerait-il notablement la vitesse du Lua ?

Unread postPosted: 07 Jun 2014, 09:47
by mdr1
Pourquoi ne pas reprendre le programme de fractale qui avait été utilisé pour voir la différence entre le Lua et le natif ? Sans on.timer bien entendu.

Re: L'OS 3.9 améliorerait-il notablement la vitesse du Lua ?

Unread postPosted: 07 Jun 2014, 09:59
by AnToX98
Tiens c'est intéressant tout ça :bj:

Déjà, vous pensez que ce serait possible de baisser le timer jusqu'au millième ? J'ai compris que c'était possible sur hp prime non ?
Sinon Adriweb, peut être que tu avais trop de classeurs ouverts sur l'une, et que l'autre tu venais de la reset.
Si ce n'est pas le cas, c'est vraiment prenant et je pense que je vais faire la mise à jour :bj:

Après sur inspired LUA, j'ai vu platform.window:setBackgroundColor(color), tu l'as testé ? Ça ralentit ou pas ?