[squeak-dev] Squeak VM Speed Centre - validity and basis of improvements 5 Dec

Levente Uzonyi leves at caesar.elte.hu
Sun Dec 25 15:09:49 UTC 2016


Probably the tests were run on different hardware.

Levente

On Sun, 25 Dec 2016, Ben Coman wrote:

> On Sat, Dec 24, 2016 at 8:13 PM, Tim Felgentreff
> <timfelgentreff at gmail.com> wrote:
>> We run benchmarks every day on
>> http://speed.squeak.org/.
>
> Reviewing at the timeline   http://speed.squeak.org/timeline/
> I am curious about some of the performance improvements.
>
> Several significant improvements seem aligned with Cog commit 2016120519
> for example AStar...
> http://speed.squeak.org/timeline/#/?exe=2,4,1,5,6,7,8,9&ben=AStar&env=2&revs=50&equid=off&quarts=on&extr=on
>
> which seems to be "Merge pull request #105 from estebanlm/Cog"
> https://github.com/OpenSmalltalk/opensmalltalk-vm/network
>
> But then also aligned with the same Cog commit, there is a
> corresponding improvement in the rsqueak performance, for example
> ArrayAccess...
> http://speed.squeak.org/timeline/#/?exe=2,4,1,5,6,7,8,9&ben=ArrayAccess&env=2&revs=50&equid=off&quarts=on&extr=on
>
> ...which seems to indicate a common cause from an in-Image
> improvement, for which between 2016120322 and 2016120519 I see "The
> various scanFor: and scanForEmptySlotFor: implementations only need to
> access the size of their array once."
> * Trunk: Kernel-eem.1050.mcz  (MethodDictionary)
>   http://forum.world.st/The-Trunk-Kernel-eem-1050-mcz-td4925618.html
> * Trunk: System-eem.920.mcz (SystemDictionary)
>   http://forum.world.st/The-Trunk-System-eem-920-mcz-td4925619.html
>
>
> So I'm curious do the benchmarks track both Image and VM changes?
> Perhaps it would be useful to also benchmark Pharo to control for
> Image changes (now that its returned to the fold using the mainline
> opensmalltalk-vm)
>
> Now I'm further curious, the benchmarks below see a massive jump down
> for 2016120519 for all data series, but all results are relatively
> very close to zero, so I wonder are these valid results?
>  ByteStringHash
>  ClassVarBinding
>  Compiler
>  EqualBytes
>  Fib
>  FillArray
>  FillByteArray
>  FillString
>  Graphsearch
>  HashBytes
>  HashWords
>  InstVarAccess
>  IntLoop
>  IntegerByteCodes
>  ModularConvolutionBytes
>  ModularConvolutionWords
>  ModularDotProductBytes
>  ModularDotProductWords
>  ModularSumBytes
>  ModularSumWords
>  PermutationCompositionArray
>  PermutationCompositionWords
>  Richards
>  Send
>  SendPrimitive
>  SendWithManyArguments
>  Slopstone
>  WideStringHash
>
> Here all series jump down, and the result range seems valid...
>  FloatLoop
>
> Here all series jump, and the result range seems valid. Rsqueak improves more...
>  ShootoutSpectraNorm
>
> Here cog32, cog64 & rsqueakvm32 have a small jump down, but its is
> very close to zero, so are they valid?  rsqueakvm64 shows no change...
>  Blowfish
>
> Here only Cog jumps down, RSqueak stays much higher, seems valid..
>  OrderedCollectionRandomInsert
>  Nbody
>
> Here only Cog jumps down, RSqueak being already pretty low. The
> results seem valid
>  AStar
>  ArrayAccess
>  BinaryTree
>  BitBltExampleOne
>  DeltaBlue
>  DoesNotUnderstand
>  Json
>  Mandala
>  MandelbrotIterative1Thread
>  MandelbrotIterative2Thread
>  MandelbrotIterative4Thread
>  MandelbrotIterative8Thread
>  MandelbrotRecursive1Thread
>  MandelbrotRecursive2Thread
>  MandelbrotRecursive4Thread
>  MandelbrotRecursive8Thread
>  OrderedCollectionInsertFirst
>
> Here only Cog jumps down, Rsqueak is unchanged or not present, seems valid...
>  Smopstone
>  SplayTree
>  ToolInteraction
>
> Here only cog32 jumps down, cog64, rsqueakvm32 & rsqueakvm64 no
> change, seems valid...
>  Fannkuck
>
> Here RSqueak improves, Cog stays the same, seems valid...
>  ShootoutMandelbrot3
>  ShootoutNBody
>
> The follow have no significant change around 5 Dec...
>  BitBltColorMapping  - all already low
>  DSAGen - all already low
>  KMeans
>  LRUCachePrintString
>  Mandelbrot
>  Polymorphy
>  RaiseToLargeNumber
>  RenderFont
>  ShaLongString
>  ShootoutBinarytrees
>  ShootoutChameneosRedux
>  ShootoutFannkuchRedux
>  ShootoutFasta
>  ShootoutFastaRedux
>  ShootoutKnucleotide
>  ShootoutMeteor
>  ShootoutPidigits
>  ShootoutRegexDNA
>  ShootoutReverseComplement
>  ShootoutThreadring
>
>
> I also see around that time on 2 Dec Fabio says "I have fixed the
> Squeak-trunk pipeline and we finally get daily updates again." So
> maybe there were suddenly a bundle of improvements that showed up in
> one go - but it seems the 2016120322 build should have picked those up
> and didn't.
> http://forum.world.st/Squeak-trunk-images-td4925570.html


More information about the Squeak-dev mailing list