I assume the // and \\ involved in converting millis to seconds were found too slow (see comment for similiar method nanoseconds:, which does it), therefore it's assumed milliseconds: is always called with value 0<value<1000. However, changing to a version that "auto-translates" to seconds: milliSeconds: milliCount ^ self basicNew seconds: (milliCount // 1000) nanoSeconds: (milliCount \\ 1000) * NanosInMillisecond (there was no MillisInSecond, I didn't bother adding just for this) and running some tests against old version: Time millisecondsToRun: [10000 to: 1000000 do: [:ms | dur := Duration milliSeconds: ms]]] 305 Time millisecondsToRun: [10000 to: 1000000 do: [:ms | durr := Duration milliSecondsOld: ms]] 1683 with float values: Time millisecondsToRun: [10000.0 to: 1000000.0 do: [:ms | dur := Duration milliSeconds: ms]]] 1944 2058 2151 Time millisecondsToRun: [10000.0 to: 1000000.0 do: [:ms | durr := Duration milliSecondsOld: ms]] 5396 5458 5171 For the small, valid, values though: Time millisecondsToRun: [5000 timesRepeat: [1 to: 999 do: [:ix | durr := Duration milliSeconds: ix]]] 1620 1628 1483 1747 1722 Time millisecondsToRun: [5000 timesRepeat: [1 to: 999 do: [:ix | durr := Duration milliSecondsOld: ix]]] 1549 1670 1525 1498 1651 So I guess it does make *some* sense, just puts rather strict limits on the input accepted. Cheers, Henry Henrik Johansen skrev:
Besides, durationToRun has a bug when durationTime is bigger than 1s, calling Duration milliSeconds: durationTime . (Or Duration milliSeconds: has a bug, depending on your point of view) Ex: (In Squeak) Duration milliSeconds: 7666 prints as: 0:00:00:00.7666 (In Pharo) Duration milliSeconds: 7666 prints as: 0:00:00:07.7666
In both cases, A Duration with 0 seconds, and 7666000000 nanoseconds is created.
Cheers, Henry
Stéphane Ducasse skrev:
on mac
0:00:00:00.409
On Jun 12, 2009, at 11:43 AM, Gary Chambers wrote:
Depends if the preference for "higher performance" is enabled too...
For comparison (Windows VM, updated 10304cl image):
"higher performance" off: 0:00:00:06.6087 "higher performance" on: 0:00:00:00.524
Regards, Gary
----- Original Message ----- From: "Stéphane Ducasse" <stephane.ducasse@inria.fr> To: "Pharo Development" <Pharo-project@lists.gforge.inria.fr> Sent: Friday, June 12, 2009 7:12 AM Subject: [Pharo-project] Animation bench
Hi guys
could you run the following:
[ (m := Morph new) openInWorld. 1 to: 300 do: [:i | m position: m position + (1@1). World doOneCycle] ] durationToRun
because frederic.ferrere@free.fr did it and here are the result
* vm : pharo-vm-0.15.1b-linux * image : pharo0.1-10332dev09.06.2 - Test 1 : Project est vide, juste le workspace ouvert à l'opposé du trajet Résultat 0:00:00:07.704 - Test 2 : ClassBrowser recouvrant tout le 'World' Résultat : 0:00:00:00.689
- Test 1 * vm : squeak3.9.8-3ubuntu3 * image : Squeak-dev 3.10.2 - Test 1 : Project est vide, juste le workspace ouvert à l'opposé du trajet Résultat : 0:00:00:02.098 - Test 2 : ClassBrowser recouvrant tout le 'World' Résultat : 0:00:00:00.608 Donc contrairement à ce qu'il semblait être logique, le morph avance plus vite si le "World" n'est pas vide.
Stéphane Rollandin a écrit :
[ (m := Morph new) openInWorld. 1 to: 300 do: [:i | m position: m position + (1@1). World doOneCycle] ] durationToRun
retourne 0:00:00:00.373 dans mon image, soit un gros tiers de seconde. on est loin des 6 s
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project