0

On Macbooks with M1 chip (arm64) , Rosetta2 is a translator from Intel x86 to M1 silicon chip.

In order to install Rosetta on your Macbook, enter in the Terminal

softwareupdate --install-rosetta

When you open an app with "Get Info", you can check "Open using Rosetta"

enter image description here

Now these applications will run under an emulation of Intel processor.

In the application "Activity Monitor", in the Kind , the iTerm2 process with Rosetta checked is Intel. The iTerm2 unchecked is Apple. In terms of performance, I notice nothing.

enter image description here

What are the drawbacks to apply Rosetta to any applications ?

  • for an app compiled for arm64 chip
  • for an app compiled for Intel x86 chip
1
  • 2
    It's still taking up more resources and energy, you just don't notice because iTerm is not a very resource intensive application.
    – Ezekiel
    Commented Nov 15, 2022 at 2:55

2 Answers 2

3

Most apps with native arm64 code are supplied as Universal Binaries: they contain both arm64 and Intel code. When you set an arm64 app to Open Using Rosetta, you're just using the Intel code segment.

So there's no difference between an app that only has Intel code, running in Rosetta, and an app with both architectures that's set to run in Rosetta.

The main drawbacks to using Rosetta are performance and efficiency. ARM code runs faster, and uses less Energy.

3
  • 1
    Are there no apps for which the ARM version behaves even slightly differently from the Intel one? (For example, the ARM version of HomeBrew defaults to a completely different installation directory.)
    – gidds
    Commented Nov 15, 2022 at 14:03
  • @gidds I'm not sure that Homebrew counts as an 'app'. :lol:
    – benwiggy
    Commented Nov 15, 2022 at 16:33
  • It clearly doesn't, else I wouldn't have had to ask the question :-)
    – gidds
    Commented Nov 15, 2022 at 17:41
0

The primary drawbacks to always running applications in Rosetta (translated to ARM from Intel) are as follows:

  • When you run the binary for the first time, there is a delay to translate the binary to native ARM. This happens continually if the Intel application uses Just In Time code.
  • Running the translated version may not be as efficient as a native application.
  • Without doubt, it will use more power.
  • Rosetta translates all x86_64 instructions, but it doesn’t support the execution of some newer instruction sets and processor features, such as AVX, AVX2, and AVX512 vector instructions. If you include these newer instructions in your code, execute them only after verifying that they are available. For example, to determine if AVX512 vector instructions are available, use the sysctlbyname function to check the hw.optional.avx512f attribute.

  • Rosetta does not raise floating point exceptions. While you might think this would only affect floating point operations in Lisp, it in fact also affects rational arithmetic and, possibly, bignums. (If you run the ANSI test suite, you get a large number of failures in its arithmetic tests.)

  • In the case of some things like Homebrew, the Intel version may look for application support files in a different directory.
1
  • @gidds I believe these are all the current known caveats to running applications in Rosetta. Commented Nov 16, 2022 at 1:37

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .