[Vm-dev] Code Compilation | Performance regression in recent VMs

Marcel Taeumel marcel.taeumel at hpi.de
Fri Aug 20 10:21:53 UTC 2021

Hi all --

I found the culprit. The regression started with the introduction of FastCPrimitiveFlag in VMMaker.oscog-eem.2995. That new feature needs more adjustments, I suppose. :-)

My previous numbers were kind of wrong. I compared cog.spur against stack.spur. The latter being, in comparison, blazingly fast in #compileAll. Something is wrong with current cog.spur, at least on Windows (64-bit).

CommitHash: d8576b0 Plugins: 202108200011 

Morph methodDict size. " 1493 "
[Morph compileAll] timeToRun " 1293 "

Morph methodDict size. " 1493 "
[Morph compileAll] timeToRun " 23018 "

Here are more tests with cog.spur:

CommitHash: 128d14994 Plugins: 202105050056
cog.spur -- [Morph compileAll] timeToRun " 1294 "

CommitHash: 9d4e82529 Plugins: 202107121800

cog.spur -- [Morph compileAll] timeToRun " 910 "

CommitHash: c0d1a5574 Plugins: 202107211710 -- VMMaker.oscog-eem.2991

cog.spur -- [Morph compileAll] timeToRun " 901 "

CommitHash: 118a02c69 Plugins: 202107232247

cog.spur -- [Morph compileAll] timeToRun " 984 "

(BUILD BROKEN  -- VMMaker.oscog-eem.2995)
(VM CRASHES between VMMaker.oscog-eem.2996 and VMMaker.oscog-eem.3009)

CommitHash: 03c4ef31b Plugins: 202108010511 -- VMMaker.oscog-eem.3009

cog.spur -- [Morph compileAll] timeToRun " 20787 "


Note that #compileAll does not write into the .changes file.

Note that the last "good" commit hash is 118a02c69f3e4c8c29e8ba867a78bd39f9a53cb4 (still using VMMaker.oscog-eem.2991). I added the tag "last-before-FastCPrimitiveFlag" to this commit.

Now let's review and fix this. ^__^


Am 19.08.2021 15:55:34 schrieb Marcel Taeumel <marcel.taeumel at hpi.de>:
[Morph compileAll] timeToRunWithoutGC

VM 202108160631 : 24607 milliseconds
VM 202108010511 : 1078 milliseconds

Am 19.08.2021 15:40:03 schrieb Marcel Taeumel <marcel.taeumel at hpi.de>:
Hi all!

There is a serious performance regression in recent VM (202108160631) regarding code compilation. I could only narrow it down to CompiledMethod >> #methodClass:. Still investigating. The start-up is also very slow. Maybe GC-related?

This regression was not there in 202108010511.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20210820/24be91ab/attachment.html>

More information about the Vm-dev mailing list