Morphic Performance Graphs

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
26 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: [Vm-dev] Re: [squeak-dev] Re: Release packaging

Levente Uzonyi-2
On Fri, 29 Apr 2011, Eliot Miranda wrote:

> Have these changes been folded back into VMMaker trunk?

There are no changes, this is a VM built from the Trunk.


Levente

Reply | Threaded
Open this post in threaded view
|

Re: [Vm-dev] Re: [squeak-dev] Re: Release packaging

David T. Lewis
On Sat, Apr 30, 2011 at 12:48:31AM +0200, Levente Uzonyi wrote:
>
> On Fri, 29 Apr 2011, Eliot Miranda wrote:
>
> >Have these changes been folded back into VMMaker trunk?
>
> There are no changes, this is a VM built from the Trunk.
>
> Levente

Support for Cog images (float word ordering) was added in these
two VMMaker updates, and is present in any recent VM build (but
the Windows VM has not been updated):

Name: VMMaker-dtl.189
Author: dtl
Time: 6 October 2010, 12:17:37 pm
UUID: 29192b6e-491d-4bc6-a209-5ba1c8625da0
Ancestors: VMMaker-dtl.188

VMMaker 4.3.3

Allow a standard interpreter VM to load and run an image that was saved
from a Cog or StackInterpreter VM. On image load, the storage format of
Float objects is returned to normalized word ordering (different from
platform word order for little endian platforms) and unrecognized header
flags are cleared. The image will be saved in standard interpreter format
(image format 6504 for a 32-bit image), which may subsequently be loaded
by a Cog or StackInterpreter VM.

Works for 32-bit Cog images (image format 6505) on both 32-bit and 64-bit
host (compile -m32 or -m64). Support for 64-bit image formats is not yet
implemented, see comment in #normalizeFloatOrderingInImage.

Name: VMMaker-dtl.190
Author: dtl
Time: 6 October 2010, 8:39:07 am
UUID: 4798e721-0a2b-4dea-b924-7492012a75f1
Ancestors: VMMaker-dtl.189

VMMaker 4.3.4

Fix #normalizeFloatOrderingInImage to work on 64-bit Squeak images. Float
data storage in a 64-bit image is the same as for a 32 bit image, with
the two 32-bit halves stored in the next two 32-bit words beginning at
accessibleObjectAfter: floatOop (in the case of 64-bit memory, the two
32-bit halves occupy one object memory word, while a 32-bit object memory
uses two). Therefore use the same logic in #normalizeFloatOrderingInImage
for a 64-bit image.



Reply | Threaded
Open this post in threaded view
|

Re: Morphic Performance Graphs

Levente Uzonyi-2
In reply to this post by Levente Uzonyi-2
On Fri, 29 Apr 2011, Levente Uzonyi wrote:

> I've got no time for that right now, maybe later this evening.

Done:

Morphic Performance Test Code v3.0 - Squeak 4.3-11361
amount, createTime, hideTime, showTime, deleteTime
1, 2, 19, 21, 68
10, 1, 22, 20, 68
100, 57, 51, 56, 52
200, 68, 50, 63, 52
300, 77, 55, 75, 55
400, 90, 54, 81, 55
500, 98, 53, 87, 52
600, 98, 53, 97, 54
700, 112, 55, 100, 57
800, 118, 55, 109, 52
900, 131, 57, 116, 53
1000, 134, 58, 125, 55
2000, 214, 66, 197, 51
3000, 293, 70, 273, 57
4000, 373, 73, 358, 59
5000, 531, 80, 420, 61
6000, 540, 84, 500, 61
7000, 692, 183, 561, 58
8000, 704, 97, 685, 63
9000, 838, 102, 712, 65
10000, 1005, 203, 787, 66
30000, 2774, 209, 2994, 94
100000, 10310, 1093, 10142, 415

Morphic Performance Test Code v3.0 - Pharo 1.3-13176
amount, createTime, hideTime, showTime, deleteTime
1, 3, 18, 20, 33
10, 9, 21, 21, 31
100, 30, 25, 25, 23
200, 34, 12, 42, 22
300, 44, 22, 42, 22
400, 55, 26, 50, 10
500, 72, 27, 56, 24
600, 76, 15, 65, 21
700, 78, 25, 72, 23
800, 89, 25, 82, 10
900, 107, 25, 88, 23
1000, 102, 28, 94, 13
2000, 196, 26, 169, 13
3000, 268, 27, 238, 23
4000, 362, 30, 321, 21
5000, 450, 34, 391, 23
6000, 530, 37, 525, 24
7000, 611, 39, 536, 23
8000, 695, 45, 616, 27
9000, 794, 47, 689, 27
10000, 880, 50, 768, 25
30000, 2739, 119, 2296, 48
100000, 9681, 393, 8895, 166

Morphic Performance Test Code v3.0 - Cuis 3.2-0914
amount, createTime, hideTime, showTime, deleteTime
1, 1, 21, 21, 49
10, 2, 22, 26, 51
100, 40, 30, 41, 31
200, 59, 32, 55, 30
300, 69, 31, 73, 31
400, 82, 33, 84, 30
500, 96, 33, 97, 30
600, 118, 33, 116, 30
700, 138, 32, 138, 34
800, 152, 31, 162, 30
900, 180, 32, 184, 31
1000, 211, 33, 222, 31
2000, 354, 37, 365, 31
3000, 475, 41, 483, 32
4000, 613, 45, 628, 32
5000, 740, 45, 735, 33
6000, 859, 52, 870, 34
7000, 966, 50, 992, 35
8000, 1090, 61, 1082, 37
9000, 1171, 61, 1161, 35
10000, 1288, 60, 1298, 36
30000, 3585, 129, 3466, 53
100000, 18824, 469, 11742, 115


Levente

Reply | Threaded
Open this post in threaded view
|

Re: Morphic Performance Graphs

Levente Uzonyi-2
Here's the script I used for these measurements:

rand := Random new.
output := (String new: 100) writeStream.
creating := [
  | m |
  m := EllipseMorph  new.
  ellipses add: m.
  m color: Color random.
  m position: (ActiveWorld extent * (rand next @ rand next)) rounded ].
deleting := [ World removeAllMorphsIn: ellipses. ].
hiding := [ ellipses do: [ :item | item hide ] ].
showing := [ ellipses do: [ :item | item show ] ].

morphs := World submorphs.
World removeAllMorphs.
World doOneCycle.
Smalltalk garbageCollect.
output
  nextPutAll: 'Morphic Performance Test Code v3.0 - ##FLAVOUR## '; cr;
  nextPutAll: 'amount, createTime, hideTime, showTime, deleteTime'; cr.
#(1 10  100 200 300 400 500 600 700 800 900 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000  30000 100000) do: [ :amount |
  ellipses := OrderedCollection new.
  createTime := [
  amount timesRepeat: creating.
  World addAllMorphs: ellipses.
  ActiveWorld doOneCycle ] timeToRun.
  hideTime := [ hiding value. ActiveWorld doOneCycle. ] timeToRun .
  showTime := [ showing value. ActiveWorld doOneCycle. ] timeToRun.
  deleteTime := [ deleting value. ActiveWorld doOneCycle. ] timeToRun.
  output
  print: amount; nextPutAll: ', ';
  print: createTime; nextPutAll: ', ';
  print: hideTime; nextPutAll: ', ';
  print: showTime; nextPutAll: ', ';
  print: deleteTime; cr ].
World addAllMorphs: morphs.
output contents explore


Levente


On Sat, 30 Apr 2011, Levente Uzonyi wrote:

> On Fri, 29 Apr 2011, Levente Uzonyi wrote:
>
>> I've got no time for that right now, maybe later this evening.
>
> Done:
>
> Morphic Performance Test Code v3.0 - Squeak 4.3-11361
> amount, createTime, hideTime, showTime, deleteTime
> 1, 2, 19, 21, 68
> 10, 1, 22, 20, 68
> 100, 57, 51, 56, 52
> 200, 68, 50, 63, 52
> 300, 77, 55, 75, 55
> 400, 90, 54, 81, 55
> 500, 98, 53, 87, 52
> 600, 98, 53, 97, 54
> 700, 112, 55, 100, 57
> 800, 118, 55, 109, 52
> 900, 131, 57, 116, 53
> 1000, 134, 58, 125, 55
> 2000, 214, 66, 197, 51
> 3000, 293, 70, 273, 57
> 4000, 373, 73, 358, 59
> 5000, 531, 80, 420, 61
> 6000, 540, 84, 500, 61
> 7000, 692, 183, 561, 58
> 8000, 704, 97, 685, 63
> 9000, 838, 102, 712, 65
> 10000, 1005, 203, 787, 66
> 30000, 2774, 209, 2994, 94
> 100000, 10310, 1093, 10142, 415
>
> Morphic Performance Test Code v3.0 - Pharo 1.3-13176
> amount, createTime, hideTime, showTime, deleteTime
> 1, 3, 18, 20, 33
> 10, 9, 21, 21, 31
> 100, 30, 25, 25, 23
> 200, 34, 12, 42, 22
> 300, 44, 22, 42, 22
> 400, 55, 26, 50, 10
> 500, 72, 27, 56, 24
> 600, 76, 15, 65, 21
> 700, 78, 25, 72, 23
> 800, 89, 25, 82, 10
> 900, 107, 25, 88, 23
> 1000, 102, 28, 94, 13
> 2000, 196, 26, 169, 13
> 3000, 268, 27, 238, 23
> 4000, 362, 30, 321, 21
> 5000, 450, 34, 391, 23
> 6000, 530, 37, 525, 24
> 7000, 611, 39, 536, 23
> 8000, 695, 45, 616, 27
> 9000, 794, 47, 689, 27
> 10000, 880, 50, 768, 25
> 30000, 2739, 119, 2296, 48
> 100000, 9681, 393, 8895, 166
>
> Morphic Performance Test Code v3.0 - Cuis 3.2-0914
> amount, createTime, hideTime, showTime, deleteTime
> 1, 1, 21, 21, 49
> 10, 2, 22, 26, 51
> 100, 40, 30, 41, 31
> 200, 59, 32, 55, 30
> 300, 69, 31, 73, 31
> 400, 82, 33, 84, 30
> 500, 96, 33, 97, 30
> 600, 118, 33, 116, 30
> 700, 138, 32, 138, 34
> 800, 152, 31, 162, 30
> 900, 180, 32, 184, 31
> 1000, 211, 33, 222, 31
> 2000, 354, 37, 365, 31
> 3000, 475, 41, 483, 32
> 4000, 613, 45, 628, 32
> 5000, 740, 45, 735, 33
> 6000, 859, 52, 870, 34
> 7000, 966, 50, 992, 35
> 8000, 1090, 61, 1082, 37
> 9000, 1171, 61, 1161, 35
> 10000, 1288, 60, 1298, 36
> 30000, 3585, 129, 3466, 53
> 100000, 18824, 469, 11742, 115
>
>
> Levente
>
>

Reply | Threaded
Open this post in threaded view
|

Re: [Vm-dev] Re: [squeak-dev] Re: Release packaging

Levente Uzonyi-2
In reply to this post by Levente Uzonyi-2
On Sat, 30 Apr 2011, Levente Uzonyi wrote:

>
> On Fri, 29 Apr 2011, Eliot Miranda wrote:
>
>> Have these changes been folded back into VMMaker trunk?
>
> There are no changes, this is a VM built from the Trunk.

Whoops, I forgot that I copied the source files for FilePlugin from Cog's
branch, so this VM has stdio support.


Levente

>
>
> Levente
>

Reply | Threaded
Open this post in threaded view
|

Re: Morphic Performance Graphs

marcel.taeumel (old)
In reply to this post by Levente Uzonyi-2
It's not about ignoring GC, but to add the influence of GC correctly. Some runs need more time for GC, some don't - even for the same "amount" value. This means, that not GC itself is a variable to block out, but another hidden one that influences the time for GC. What you do not want, is to have "peaks" in your graph that happended by chance, because that doesn't mean anything for the general morphic performance.

Peaks which occur very often for several runs - not only a few times - would be VERY interesting though. :)

Marcel
12