Bonsoir,
avec tous les tests que j'ai pu faire concernant les vitesse de déplacements des morphs, la méthode durationToRun m' a renvoyé des résultats un peu surprenant. La place de la virgule entre les secondes et les millisecondes n'est pas toujours correcte. Pour vérifier cela j'ai "encadré" mon block d'exécution avec : Transcript show: Time now;cr. Test 1 : 0:00:00:00.1788 7:47:13 pm 7:47:15 pm ici le résultat devrait plutôt être 0:00:00:01.788 Test 2 : moins d'une seconde 0:00:00:00.439 7:47:38 pm 7:47:38 pm Test 3 : 0:00:00:05.5272 8:07:43 pm 8:07:49 pm Test 4 : 0:00:00:00.3167 8:05:43 pm 8:05:46 pm ici le résultat devrait plutôt être 0:00:00:03.167 Ce comportement survient avec les configs suivante : - Système d'exploitation : Ubuntu 9.04 * vm : pharo-vm-0.15.1b-linux * image : pharo0.1-10332dev09.06.2 * vm : squeak3.9.8-3ubuntu3 * image : Squeak-dev 3.10.2 Code utilisé : [ Transcript show: Time now;cr. (m := Morph new) openInWorld. 1 to: 300 do: [:i | m position: m position + (1@1). World doOneCycle]. Transcript show: Time now;cr. ] durationToRun. Un bug ? Cordialement, -- Frédéric _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
voir la mailing-list pharo.
Ce comportement a ete mentione mais je n'ai pas percute assez pour te donner une reponse claire. On Jun 14, 2009, at 8:12 PM, Frédéric Ferrère wrote: > Bonsoir, > > avec tous les tests que j'ai pu faire concernant > les vitesse de déplacements des morphs, > la méthode durationToRun m' a renvoyé des résultats un peu surprenant. > > La place de la virgule entre les secondes et les millisecondes > n'est pas toujours correcte. > Pour vérifier cela j'ai "encadré" mon block d'exécution > avec : Transcript show: Time now;cr. > > Test 1 : > 0:00:00:00.1788 > 7:47:13 pm > 7:47:15 pm > ici le résultat devrait plutôt être 0:00:00:01.788 > > Test 2 : moins d'une seconde > 0:00:00:00.439 > 7:47:38 pm > 7:47:38 pm > > Test 3 : > 0:00:00:05.5272 > 8:07:43 pm > 8:07:49 pm > > Test 4 : > 0:00:00:00.3167 > 8:05:43 pm > 8:05:46 pm > ici le résultat devrait plutôt être 0:00:00:03.167 > > Ce comportement survient avec les configs suivante : > - Système d'exploitation : Ubuntu 9.04 > * vm : pharo-vm-0.15.1b-linux > * image : pharo0.1-10332dev09.06.2 > > * vm : squeak3.9.8-3ubuntu3 > * image : Squeak-dev 3.10.2 > > Code utilisé : > [ > Transcript show: Time now;cr. > (m := Morph new) openInWorld. > 1 to: 300 do: [:i | > m position: m position + (1@1). > World doOneCycle]. > Transcript show: Time now;cr. > ] > durationToRun. > > Un bug ? > > Cordialement, > -- > Frédéric > > _______________________________________________ > Squeak-fr mailing list > [hidden email] > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
In reply to this post by Frédéric Ferrère-2
tout ce que je peux dire, c'est que j'utilise durationToRun dans le
calcul du moment d'émission des messages MIDI dans mon programme de composition musicale, et que le résultat est très, très précis. 80% du MIDI est envoyé au moment correct à 1 ms près. l'image utilisée est un Squeak3.8 Stef _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
In reply to this post by Frédéric Ferrère-2
[3500 milliSeconds asDelay wait] durationToRun
donne 0:00:00:00.3501 sur Squeak3.10.2, mais donne le format correct 0:00:00:03.5 sur Squeak3.8.2. le problème vient de Duration class>> days: days hours: hours minutes: minutes seconds: seconds nanoSeconds: nanos ^ self seconds: ((days * SecondsInDay) + (hours * SecondsInHour) + (minutes * SecondsInMinute) + seconds) nanoSeconds: nanos ... qui est faux, car les nanoseconds ne participent pas au calcul des seconds. la version précédente est: days: days hours: hours minutes: minutes seconds: seconds nanoSeconds: nanos ^ self nanoSeconds: ( ( (days * SecondsInDay) + (hours * SecondsInHour) + (minutes * SecondsInMinute) + seconds ) * NanosInSecond ) + nanos. et là ça marche. Stef _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
Free forum by Nabble | Edit this page |