↩ Accueil

Vue normale

Rosetta 2 semble optimiser le code généré

16 novembre 2025 à 12:54


Rendering VT-100 émulant l'affichage DOS

J'écris des moteurs d'échecs, ou d'autres comme pour le Reversi/Othello, depuis plusieurs décennies.
Je suis en train de travailler sur un moteur sorti fin 1994 pour le Minitel, écrit en C-Ansi, Borland C 3.1 pour DOS à l'époque et gcc maintenant pour Posix dans un terminal VT-100, 32 bits pour Pentium [1] à l'époque et 64 bits pour x86 et ARM aujourd'hui.
Du vieux code monothread, c'est à noter.

Et pour m'amuser, sur mon Mac mini M4, je ne fais non pas tourner une version compilée pour ARM mais celle compilée pour x86 64 bits. Le même exact code, grâce à Rosetta 2.
Ce code x86 sort de gcc, avec l'option -O3 : optimisé mais en limitant les risques.

Je viens de m'apercevoir que si en moyenne un cœur Performance du M4 est 3,3 fois plus rapide que chaque cœur de mon MBP 15" 2017, ce qui devrait amener ce code x86 monothread à tourner moins de 3 fois plus vite sous ARM via Rosetta 2 (85% d'efficacité mesurée en 2020), il tourne en fait 4 fois plus vite maintenant en 2025!

Je soupçonne que Rosetta 2 s'est vu amélioré et pourrait utiliser les 16 registres généraux en plus de l'architecture ARM 64 bits pour optimiser le code x86 quand il le transcrit pour nos Mac Apple Silicon.
Ce code simple (non-vectoriel, non fpu) tourne 30% plus vite qu'il le devrait !

Une limitation du Amd64 (ou x86 64 bit, ou x86-64) créé par AMD, c'est que son architecture ne contient que 16 registres généraux (entiers et pointeurs), contre 32 pour ARM 64bits (AArch64).

Ça permet évidemment à nos Mac ARM d'émuler facilement les 16 registres du x86, mais en laisse beaucoup inutilisés, et je pense que Rosetta 2 en profite pour limiter les relectures après écriture dans la pile (les écritures étant probablement conservées).

Une autre optimisation peut être d'éliminer les copies de registres inutiles, puisque en ARM 64 bits les opérations ont souvent 3 opérandes (2 sources et 1 destination), contre 2 en x86 64 bits (1 source, 1 destination).
Par exemple a=b+c en x86 64 bits consiste à "copier" (créer un alias) b dans a puis à lui ajouter c (2 opérations), quand en ARM 64 bits, on ajoute b et c dans a en une seule opération.

L'aliasing de registres (ex-copie) est "gratuite" en x86 maintenant, mais nécessite de décoder une instruction de plus, donc plus de charge coté décodeur (front end) qui est déjà un problème en x86 avec des instructions de longueur variable et le travail pour créer les micro-instructions et macro-instructions depuis les Core™ 2.

Je vais vous revenir avec une comparaison avec du code ARM natif (même compilo mêmes options). Mais ce résultat est très surprenant, Apple fait un travail incroyable sur Rosetta 2 !

Le MacBook Air M2 en promo à 699 €, son plus bas historique

4 janvier 2026 à 07:25

Mise à jour 04/01 — 699 €, c’est le nouveau prix plancher du MacBook Air M2. Il était déjà disponible à ce prix chez Boulanger en milieu de semaine. C’est au tour de Darty de le proposer à ce prix en collaboration avec Rakuten. Pour bénéficier de cette offre, il suffit de saisir le code RAKUTEN50 lors de la commande. La transaction est gérée par Rakuten, mais la livraison est l’œuvre de Darty.

Cette configuration embarque 16 Go de RAM et 256 Go d’espace de stockage. Une offre à ne pas rater, si vous cherchez un Mac à petit prix.

Mise à jour 26/12 — Boulanger poursuit sa double remise sur le MacBook Air M2 minuit qui le fait tomber à seulement 724 €, son prix le plus bas. La machine est affichée à 749 €, mais une fois dans le panier, une remise supplémentaire de 25 € est appliquée.

MacBook Air M2 minuit. Image MacGeneration.

Lancé en 2022, le MacBook Air M2 est très agréable à utiliser : il est léger, silencieux, performant et endurant. Deux générations lui ont succédé, mais la formule n’a pas changé, si bien qu’il reste tout à fait dans le coup aujourd’hui. Les 16 Go de RAM sont suffisants pour les usages classiques. Les 256 Go de stockage peuvent, eux, être trop faibles pour certains, mais on peut pallier le problème avec un SSD externe.

Test du MacBook Air M2 : le saut dans l

Test du MacBook Air M2 : le saut dans l'air moderne


Mise à jour 20/12 — Petit à petit, le MacBook Air M2 se rapproche de la barre psychologique des 700 €. Ces derniers jours, on voit fleurir de plus en plus d’offres éphémères entre 720 et 750 €. Aujourd’hui, la meilleure nous vient du duo Rakuten / Darty : en saisissant le code DARTY10, vous pouvez obtenir le portable d’Apple à 739 €. Il s’agit d’une configuration avec 16 Go de RAM et 256 Go de SSD. La transaction est effectuée via Rakuten, mais la livraison est assurée par Darty. Amazon de son côté propose la même configuration pour 749 €.

Mise à jour 16/12 — Amazon riposte à son tour à Boulanger et propose le même MacBook Air M2 16 Go à 725 € !

Mise à jour 15/12 — En 2026, le prix des Mac pourrait à nouveau augmenter, mais 2026, c’est encore (un peu) loin. Autant dire qu’on ne reverra peut-être pas de si tôt un MacBook Air à 724 € ! À ce prix, vous pouvez obtenir chez Boulanger le MacBook Air M2 équipé de 16 Go et 256 de mémoire vive. Il s’agit bien entendu d’un modèle neuf ! Pour l’obtenir à ce prix, pensez à saisir le code NOEL25.

Mise à jour 11/12 — Le MacBook Air M2 est proposé ce jour à 749 € chez Boulanger ! Il s’agit du même modèle : 16 Go de RAM et 256 Go de SSD.

Mise à jour 09/12 — Depuis le Black Friday, les prix ont tendance à repartir à la hausse sur certaines configurations de Mac. Il reste toutefois de bonnes affaires à saisir ! Après avoir été proposé pendant quelques jours à 799 €, le MacBook Air M2 avec 16 Go de RAM et 256 Go de stockage est de nouveau affiché à 775 €. Mais la vraie surprise vient de Cdiscount, qui ne s’est pas contenté de s’aligner : le site dégaine une contre-offensive encore plus agressive. Avec le code MBA25, le même MacBook Air M2 tombe à 750 €, tout simplement l’un des meilleurs prix jamais vus pour ce modèle.

Le MacBook Air M4, lui, est proposé à 942,11 €. Il était resté longtemps à 899 €.

Mise à jour 3/12 — Amazon vient de baisser à nouveau le prix du MacBook Air M2 16 Go. Il est proposé au prix de 748 € !

Mise à jour 26/11 — Chaque jour, le MacBook Air M2 abandonne quelques euros. Le voilà disponible pour 773 € sur Amazon ! Pour l’avoir à ce prix, il vous faut activer le coupon qui est proposé !

Mise à jour 21/11 — Le prix du MacBook Air M2 repart à la baisse sur Amazon. Il est affiché ce jour à 798 €, mais Amazon lui retranche 15 € au moment de passer la commande. Ce qui nous ramène le MacBook Air M2 à 783 € !

Mise à jour le 14 novembre 14:10 : Le prix du MacBook Air M2 continue de dégringoler : on peut l’obtenir pour 773 € en ce moment chez Cdiscount. Il faudra pour cela entrer le code POMME25 à l’étape du paiement. Il s’agit de la version 256 Go et avec 16 Go de RAM. La machine est vendue et expédiée par Cdiscount. Ne traînez pas trop, car rien n’indique jusqu’à quand l’offre restera en ligne.

Article original : Si Apple a diminué récemment le prix du MacBook Air M4 13 pouces, qui est passé à 1 099 €, il n'y a pas encore de Mac portable réellement low cost dans la gamme… du moins pas chez Apple directement. En effet, de nombreux revendeurs proposent encore le MacBook Air M2 à la vente, dans sa variante dotée de 16 Go de RAM et de 256 Go de stockage. Et Amazon propose même une (petite) réduction : il est à 798 €, son prix le plus bas chez Amazon1.

Le MacBook Air M2 en version Minuit. Image MacGeneration

La machine a été lancée en 2022 à 1 500 € (avec 8 Go de RAM), et c'est un ordinateur portable toujours performant, très autonome et silencieux, contrairement aux MacBook Pro M5, par exemple. Le MacBook Air M4 a évidemment un système sur puce plus moderne et plus performant, mais la puce M2 ne démérite pas. C'est la version noire (Minuit) qui est proposée à ce prix, et elle n'a qu'un défaut : elle est (très) sensible aux traces de doigts. Mais pour le reste, le MacBook Air M2 reste un excellent appareil, surtout à ce prix.


  1. Soyons honnêtes : il est depuis quelques semaines à 799 €, mais ça reste une bonne affaire souvent méconnue.  ↩︎

❌