Valhalla, startup, performance of interpreter, and vwithfield

Brian Goetz brian.goetz at
Mon May 13 14:00:12 UTC 2019

This is good news.  I want to ask further about the numbers you cite here.  You compare value creation to classic object creation, but obviously we want value creation to be faster.  When you say it is comparable to classic object creation costs, I assume that you are not including the allocation cost, and comparing only the field write costs? 

> I did quick evaluation of startup and interpreter performance cost. I have to take back my words that "vwithfield is major contributor to the interpreter speed and merged(or fused) vwithfield could improve interpreter performance". It was quite long time age when I was looking into interpreter's performance last time. I have to say that a huge work was done for interpreter since that time and now I don't consider interpreter's performance as an issue. As for vwithfield, now cost of the single vwithfield (in the interpreter) is approximately 200ns (on 2.2GHz freq). It is not a big nor a small value. If compare cost of value creation vs cost similar classic java object creation (simple writes) then single vwithfield costs ~7%-10% from the whole object creation. So I am guessing that if you have a value with 10 fields (and 10 vwithfield operations) - you may double value creation cost, but it will have minor impact for the whole execution.
> Also I have to say that if look into startup for the first execution of code - interpreter takes less than 1%. All others actions (classloading, verification, etc..) take much more time. As for "time to performance" - I didn't evaluate it yet. Interpreter's impact could be higher in that case. At the same moment  - working TieredCompilation will improve "time to performance" much more than any interpreter tuning.

More information about the valhalla-dev mailing list