• wtallis@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    Interesting topic, but tragically shallow treatment of the subject. He tested with Handbrake and found Apple’s Rosetta 2 to be slightly better (lower overhead) than Microsoft’s solution, and tested with some of his own code and found Microsoft’s to be significantly better than Apple’s. But we didn’t get any description of what that mystery code is doing, so it’s a largely worthless result and leaves him without enough justification to make any solid conclusions (Handbrake is a good test to start with, but not enough on its own).

    I would have liked to see a comparison of what x86 instruction set extensions are supported by the respective compatibility layers (especially the SIMD extensions), an overview of the general techniques used by the compatibility layers (ie. ahead-of-time translation or JIT or instruction-by-instruction emulation or a mix of techniques) and how much caching of translations affects first-run performance vs subsequent runs, and comparison of both single-threaded and multi-threaded workloads (because ARM’s weaker memory model than x86 is a major challenge for translating multi-threaded code with low overhead).

    • Pristine-Woodpecker@alien.topB
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      because ARM’s weaker memory model than x86 is a major challenge for translating multi-threaded code with low overhead

      As someone else here has pointed out, Windows on ARM emulation ignores this by default and just accepts the possibility of wrong results or app crashes.

      So, you’re likely not going to see much performance difference, but…