[Vm-dev] ARMv8 JIT much slower to JIT than x86_64

tim Rowledge tim at rowledge.org
Mon Jan 16 21:30:35 UTC 2023


Well, obviously it's doing the job once for each mapped zone :-)

> On 2023-01-16, at 1:01 PM, Eliot Miranda <eliot.miranda at gmail.com> wrote:
> 
> Hi All,
> 
>     I find this fascinating, and I'll profile as soon as I can. I have two MacBook Pros, a 2018 2.9GHz Intel Core i9, and a 2021 Apple M1 Max. On large loads the latter is about -20% faster than the former. I know this because Tim found a bug in the become primitive with jitted methods that manifested on the Linux ARMv8 (DUAL_MAPPED_CODE_ZONE regime). SImulating the re3co9mpilation of all methods in the system that Tim's example did took about 5 hours on the x86_64 and only 4 on the M1 Max.  But if I compare the JIT benchmarks on them the speeds swing wildly the other way:
> 
> These are the average times to JIT all of COmpiledCode's methods (excluding subclasses)
> Apple M1:
> min        max        average
> 2.417    79.257    9.674 usecs to JIT
> 2            20          5.938 number of literals
> 1           106         17.464 number of bytecodes
> 
> Apple 2.9GHz Core i9:
> min        max        average
> 0.705     32.497   4.256 usecs to JIT
> 2            20          5.938 number of literals
> 1            106        17.464 number of bytecodes
> 
> So there must be some really inefficient thing that the Apple ARMv8 JIT is doing to make it so slow. Interesting :-)
> 
> _,,,^..^,,,_
> best, Eliot


tim
--
tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim
Useful random insult:- Hypnotized as a child and couldn't be woken.




More information about the Vm-dev mailing list