[Vm-dev] [squeak-dev] The Trunk: System-codefrau.1205.mcz

Eliot Miranda eliot.miranda at gmail.com
Tue Dec 22 21:57:33 UTC 2020

On Tue, Dec 22, 2020 at 1:44 PM Vanessa Freudenberg <vanessa at codefrau.net>

> On Tue, Dec 22, 2020 at 1:08 AM Eliot Miranda <eliot.miranda at gmail.com>
> wrote:
>> Of the execution architectures Sista JIT is for practical purposes not
>> yet implemented, a prototype, but may offer 2x to 4x of Cog.  Of the Squeak
>> JS JITs I think that the send mapping isn’t implemented (am I right?).  But
>> is the temp var mapping implemented? If so what difference does it make?
>> Context to Stack is about 1.5. Stack to Cog is about 6.
> None of that has been implemented in SqueakJS. The current JIT only gets
> rid of the generic bytecode decoding, plus it inlines small-int arithmetic.
> However, that still gives an 8x increase in bytecode speed, which causes
> the send speed as measured by tinyBenchmarks to go up by 3.5x too. It also
> *feels* significantly faster with the JIT enabled.
> See the comment on top of
> https://github.com/codefrau/SqueakJS/blob/main/jit.js
>> Does this sound like overkill? If not, what should we choose as our mips
>> measurer?  We want something that all VMs have to do somewhat similarly
>> fairly early on system startup and we can correlate with stopwatches and
>> macro benchmarks like the time taken for the Compiler package to recompile
>> itself, etc.
> I like measuring all-over performance, and not adding any extra work.
> Like, DateAndTime is pretty early in the startup list. It could remember
> the time its startup was invoked. Another class that comes later could set
> a LowPerformance flag if it took longer than x ms since DateAndTime was
> initialized.
> I just tried that with ProcessorScheduler (see attachment). On Safari and
> a 5.3 image I get ImageStartMS = 133 ms, on Chrome 250 ms. On a fast VM I
> get 5 ms. So maybe if that takes longer than say 50 ms it could be
> considered low performance?

Works for me. I would record and provide an accessor for ImageStartUsecs (a
class variable in SmalltalkImage, using microseconds :-) ).  Then one can
either use isLowerPerformance or the actual time for a more "nuanced" view.

best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20201222/11bf0d84/attachment.html>

More information about the Vm-dev mailing list