Rosetta 2

So I understand that under Big Sur on an M1 Mac you can run universal apps that have both Intel and ARM code as well as iOS apps. Rosetta 2 does the translation work for Intel only apps…but according to several sites I’ve seen the translation is done at install of the app rather than launch and that any slowdown will only be the first time.

Does this mean that when you install an app the translation gets done and Rosetta writes a now universal app back to disk or does it just stash the translated code somewhere and grab it when needed…I didn’t find any clear definition on this at…figured some developer on the forum can provide a good answer.

I’m afraid I can’t offer an answer to your actual question, @neil1, but I would like to pile on with a clarification. Does the translation occur “on installation” (and what does that mean for apps that don’t come with an installer) or does it just happen when you launch the app for the first time? I’m assuming it’s the latter, but I don’t recall Apple mentioning specifics on this.

I found 2 different sites that talked about “on installation” and neither talked about the issue. I can see that the installer app might call Rosetta 2 for the translation but most apps just get dragged from the .dmg file and it would be unlikely for Rosetta 2 to be called for every Finder copy operation…so I’m guessing first launch for those apps. Still wonder where the translated code gets stashed though…hence my original question.

1 Like

This, directly from Apple developer documentation:

If an executable contains only Intel instructions, macOS automatically launches Rosetta and begins the translation process. When translation finishes, the system launches the translated executable in place of the original.

So it would appear that translation happens at launch. This document makes no mention of any kind of caching of the translated app.

Thanks Ron…but at least according to a couple of sites…including Microsoft…the translation only happens once. Microsoft specifically says that launching an Office app will take 20 seconds (about) the first time while the translation happens but subsequent launches will be in the normal amount of time…that implies to me that it’s getting cached somewhere. Hopefully we’ll get this answered as time passes…