On 10.06.2014, at 00:08, Nicolai Hess <[email protected]> wrote:

> The script is slower on Pharo3. But I think, this has nothing to do
> with the pharo3 image, as the same drgeo image is slower on
> a pharo3 vm than on the pharo 1.4 vm.

When you say “pharo 1.4 vm”, do you mean CogVM? Or SqueakVM?

And just to be sure (I’m sure you’ve thought of that): did you “warm up” the 
vm? JIT apparently needs that.

Max

> 
> 
> 
> 
> 2014-06-09 23:10 GMT+02:00 Esteban Lorenzano <[email protected]>:
> I do not understand, what is/could be a vm issue?
> 
> Esteban
> 
> On 09 Jun 2014, at 18:08, Nicolai Hess <[email protected]> wrote:
> 
>> Is this a VM issue?
>> I took the same image (drgeo from http://www.drgeo.eu/ download page)
>> and run it with pharo4 vm and pharo 1.4 (from http://www.drgeo.eu/)
>> 
>> 520 msec vs 371 msec:
>> 
>> 
>> 
>> 
>> Image
>> -----
>> P:\Pharo4.0\drgeo.image
>> Pharo1.4
>> Latest update: #14459
>> Unnamed
>> 
>> Virtual Machine
>> ---------------
>> P:\Pharo4.0\Pharo.exe
>> 
>> 
>>  - 512 tallies, 520 msec.
>> 
>> ....
>> 
>> **Leaves**
>> 13.1% {68ms} Array class(Behavior)>>inheritsFrom:
>> 9.4% {49ms} DrGPointIntersectionItem>>=
>> 8.0% {42ms} DrGPointFreeItem(DrGMathItem)>>=
>> 6.6% {35ms} OrderedCollection(SequenceableCollection)>>hasEqualElements:
>> 6.6% {35ms} DrGCircle2ptsItem(DrGMathItem)>>parentsEqual:
>> 6.3% {33ms} WeakActionSequence(SequenceableCollection)>>first
>> 5.7% {29ms} OrderedCollection>>at:
>> 4.7% {24ms} OrderedCollection>>size
>> 2.7% {14ms} Array(Object)>>isKindOf:
>> 2.7% {14ms} OrderedCollection(SequenceableCollection)>>=
>> 1.8% {9ms} OrderedCollection>>do:
>> 1.8% {9ms} 
>> OrderedCollection(SequenceableCollection)>>indexOf:startingAt:ifAbsent:
>> 
>> 
>> 
>> 
>> 
>> 
>> Image
>> -----
>> c:\Users\nicolai\Downloads\DrGeo.app\Contents\Resources\drgeo.image
>> Pharo1.4
>> Latest update: #14459
>> Unnamed
>> 
>> Virtual Machine
>> ---------------
>> c:\Users\nicolai\Downloads\DrGeo.app\drgeo.exe
>> 
>> 
>>  - 366 tallies, 371 msec.
>> 
>> 
>> **Leaves**
>> 14.5% {54ms} OrderedCollection(SequenceableCollection)>>hasEqualElements:
>> 11.5% {43ms} DrGPointIntersectionItem>>=
>> 10.7% {40ms} OrderedCollection class(Behavior)>>inheritsFrom:
>> 6.8% {25ms} DrGPointIntersectionItem(DrGMathItem)>>parentsEqual:
>> 5.7% {21ms} OrderedCollection>>at:
>> 5.5% {20ms} Array(SequenceableCollection)>>first
>> 5.2% {19ms} OrderedCollection>>size
>> 4.6% {17ms} DrGCircle2ptsItem(DrGMathItem)>>=
>> 4.4% {16ms} Array(SequenceableCollection)>>=
>> 3.3% {12ms} Array(Object)>>isKindOf:
>> 2.5% {9ms} 
>> OrderedCollection(SequenceableCollection)>>indexOf:startingAt:ifAbsent:
>> 2.2% {8ms} SmallInteger>>bitShift:
>> 1.6% {6ms} OrderedCollection>>do:
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 2014-06-09 12:24 GMT+02:00 Hilaire Fernandes <[email protected]>:
>> Hi Nicolai,
>> 
>> No, check on Smalltalk Hub. You will find instruction to install it as well.
>> 
>> The ConfigurationOfDrGeo will not fetch the latest code, but once
>> installed you can update the packages -Core and -Polymorph throught
>> Monticello.
>> 
>> Hilaire
>> 
>> 
>> Script to try for rendering slowness (replace "figure do:" with
>> "MessageTally spyOn:" to measure)
>> 
>> |canvas s stats points|
>> 
>> points :=Array new: 12.
>> stats := Array new: 12 withAll: 0.
>> 
>> canvas := DrGeoCanvas new.
>> canvas  scale: 20; fullscreen ;
>>         centerTo: 6@10.
>> 2 to: 12 do: [:i |
>>         points at: i put: (canvas point: [email protected]).
>>         (points at: i) square; color: Color blue.
>>         s := canvas segment: i@0 to: (points at: i).
>>         s color: Color red].
>> 
>> figure do: [
>>         1 to: 10000 do: [:i|
>>                 s := 6 atRandom + 6 atRandom.
>>                 stats at: s put: ((stats at: s)+1).
>>                 (points at: s)
>>                         name: (stats at: s) asString;
>>                         moveTo: s @ ((stats at: s) / 100).
>>                 canvas update]].
>> 
>> 
>> Or another script to stress other aspect:
>> 
>> | figure triangle |
>> figure := DrGeoCanvas new fullscreen.
>> triangle := [ ].
>> 
>> triangle := [:p1 :p2 :p3  :n | |s1 s2 s3 perp cercle p4 |
>>    s1 := figure segment: p1 to: p2.
>>    s2 := (figure segment: p2 to: p3) color: Color red; large.
>>    s3 := figure segment: p3 to: p1.
>>    perp := figure perpendicular: s3 at: p3.
>>    cercle := figure circleCenter: p3 to: p2.
>>    p4 := figure altIntersectionOf: cercle and:  perp.
>>    perp hide. cercle hide. p4 hide.
>>    n > 0 ifTrue: [triangle value: p1 value: p3 value: p4 value: n -1]].
>> 
>> MessageTally spyOn: [triangle value: 0@0 value: -1@0     value: -1@1
>> value: 50]
>> 
>> 
>> 
>> 
>> Le 08/06/2014 23:07, Nicolai Hess a écrit :
>> >
>> > I would like to take a look at this, can
>> > you provide me your current DrGeo version you are using
>> > for this. (I guess it is not http://www.squeaksource.com/DrGeoII)
>> 
>> --
>> Dr. Geo http://drgeo.eu
>> iStoa - https://launchpad.net/istoa
>> 
>> 
>> 
> 
> 

Reply via email to