[Vm-dev] CogVM performance

Levente Uzonyi leves at elte.hu
Sat May 16 15:59:01 UTC 2015


On Sat, 16 May 2015, Esteban Lorenzano wrote:

>
>
>> On 16 May 2015, at 17:08, Levente Uzonyi <leves at elte.hu> wrote:
>>
>> Hi All,
>>
>> I saw that some of my benchmarks produce different results when running on PharoVM instead of CogVM, and I was wondering why. I ran #tinyBenchmarks from the same image on both VMs and the results were surprising:
>>
>> "CogVM 3343" '904593639 bytecodes/sec; 46368169 sends/sec'
>> "Pharo vm50" '941176470 bytecodes/sec; 120698445 sends/sec'
>>
>> Slightly more bytecodes, and a lot more sends. I tried playing with compiler flags, but with no luck, so I came to the conclusion that the difference comes from somewhere else. I checked where the PharoVM was forked from CogVM (somewhere around 2014-06-10), so I downloaded a version of CogVM from around that time: CogVM 3048.
>>
>> And the results are '932604735 bytecodes/sec; 118660385 sends/sec'.
>>
>> Somewhere between 3048 and 3343 the performance has dropped significantly (sends/sec). Note that this is not something that's only visible in micro benchmarks.
>>
>> Does anyone know why?
>
> It has to be a flags issue.

I don't think so, because flags don't have much effect on jitted code. I 
can squeeze out a few percents with -O3 -fomit-frame-pointer 
-march=native, but what that really affects are the primitives.

I narrowed it down, it happened between 3306 and 3308:

3048 '932604735 bytecodes/sec; 118660385 sends/sec'
3163 '885813148 bytecodes/sec; 118216795 sends/sec'
3164 '856187290 bytecodes/sec; 109993018 sends/sec'
3254 '932604735 bytecodes/sec; 119670738 sends/sec'
3306 '943778801 bytecodes/sec; 125949728 sends/sec'
3308 '924187725 bytecodes/sec; 44489533 sends/sec'
3311 '937728937 bytecodes/sec; 46190853 sends/sec'
3312 '894323144 bytecodes/sec; 45239356 sends/sec'
3343 '904593639 bytecodes/sec; 46368169 sends/sec'

Levente

> btw… We did not fork… I branched to work on spur and I still didn’t get back to trunk, in the mean time we just incorporated to trunk minor bugfixes :)
>
>
>>
>>
>> Levente
>
>


More information about the Vm-dev mailing list