Les bénéfices du M1 Max dans mon quotidien de développeur

Florent Morin |

Quand Apple a présenté sa puce M1, le bond de performances vis-à-vis des processeurs Intel était assez impressionnant, et ce à un tarif raisonnable. En cette fin 2021, c’est la gamme professionnelle qui a été révélée. Vu le tarif des nouveaux MacBook Pro, il est légitime de s’interroger sur le gain réellement obtenu. Je vous propose un premier retour d’expérience en tant que développeur iOS avec quelques mesures opérées dans la vie de tous les jours.

Les configurations testées sont les suivantes :

  • MacBook Pro 15 pouces 2018, Intel Core i9 2,9 GHz, 32 Go de mémoire
  • Mac mini 2020, M1, 16 Go de mémoire
  • MacBook Pro 16 pouces 2021, M1 Max, 64 Go de mémoire

Les tests ont été effectués sur macOS 12.1 avec Xcode 13.2. Les mesures ont été prises avec et sans le nouveau système de compilation Xcode 13.2 activé via la commande defaults write com.apple.dt.XCBuild EnableSwiftBuildSystemIntegration 1.

Résultats via XcodeBenchmark

Le premier test a été réalisé via le projet XcodeBenchmark qui permet de mesurer les performances de Xcode au travers d’un projet très hétérogène. Dans la configuration non optimisée, les performances du i9 au M1 sont quasiment multipliées par 1,9. Et du M1 au M1 Max, on est aux alentours de 35 %. En configuration optimisée, le passage du i9 au M1 permet de multiplier les performances par 2. Et les performances du M1 au M1 Max sont multipliées par 3.

J’ai testé le procédé sur plusieurs projets personnels ou de clients : le gain n’est pas toujours aussi significatif au niveau du nouveau système de compilation. Par contre, le bénéfice en termes de performances entre les différentes puces est toujours bien marqué.

Même si la compilation est une action récurrente qui est effectuée des dizaines de fois par jour par les développeurs, les tests dans les simulateurs sont aussi une source de frustration, en particulier au moment du lancement.

Délai de lancement du simulateur iOS

J’ai donc pris un projet dont le lancement est fastidieux et j’ai mesuré le temps entre le clic pour déclencher le lancement de l’app et l’affichage du premier écran, le tout en partant d’un simulateur vierge de toute installation. Le bénéfice entre i9 et M1 est de 20 % environ. Et, si on passe du M1 au M1 Max, le bénéfice est de 35 %.

Enfin, j’ai également effectué quelques tests assez basiques d’apprentissage automatique avec Core ML. Sans entrer dans des détails qui nécessiteraient un article entier, les performances sont remarquables sur M1 Max mais absolument identiques à celles du M1 dans mon cas. En gros, j’en suis à 10 000 traitements par minute, soit pratiquement 2 fois plus qu’avec un Mac Intel et sans entendre le ventilateur souffler.

Au bout du compte, le M1 Max est pleinement satisfaisant, bien que sous-exploité aujourd’hui. On sent qu’il a encore beaucoup à donner. Le nouveau système de compilation de Xcode 13.2 illustre parfaitement le potentiel de la machine. Une simple mise à jour logicielle fait s’envoler les performances. J’ai aussi effectué plusieurs tests avec Swift Concurrency : on est encore loin de la maturité de Grand Central Dispatch en termes d’exécution de tâches concurrentes, bien que la technologie soit extrêmement prometteuse. C’est encore un levier sur lequel Apple pourra s’appuyer à l’avenir.

Ceci étant, les puces professionnelles M1 Pro et M1 Max réussissent déjà à se distinguer des puces M1 grand public. En tant que développeur, je vois nettement la différence au quotidien. Là où c’était rapide, c’est devenu très rapide. Et ce n’est que le début, vivement la WWDC22 !


avatar TrollMan06 | 

Spoil : aucun

avatar MrYOSS | 

@TrollMan06

Spoil: lire l’article c’est important

avatar Bounty23 | 

@TrollMan06

Y’a pas une fonction pour masquer les commentaires d’un utilisateur ? Ceux de ce genre ne servent pas à grand chose d’autre que polluer la communauté macg, ça serait bien de pouvoir en masquer les auteurs récurrents.

avatar Ali Baba | 

@Bounty23

Si, il y a :)

Fais glisser le commentaire à masquer vers la gauche et tape sur l’icône en forme d’œil barré.

avatar Genval (non vérifié) | 

@Bounty23 & Baptiste_nv18

Merci pour l'info. Y-a-t-il un équivalent sur macos?

Bonne journée à tous.

avatar zoubi2 | 

@Genval

Oui, fastoche : simplement cliquer sur l'oeil barré. Il y a longtemps que cet ahuri est barré ici (il n'est pas le seul) ...

avatar Genval (non vérifié) | 

@zoubi2
Merci pour ta réponse, sur macos je n'ai pas œil barré, peut-être est-ce dû au fait que je n'utilise pas Safari et que j'ai installé un tas extensions qui bloquent les réseaux sociaux.

avatar MrYOSS | 

@zoubi2

Je ne voix pas cette fonction :/

avatar marenostrum | 

il faut être abonné pour pouvoir le faire. bref c'est une fonctionnalité payante.

avatar Genval (non vérifié) | 

@marenostrum,

Merci pour l'information, je sais ce qu'il me reste à faire.

avatar Baptiste_nv18 | 

@Bounty23

Heureusement que c’est possible même 😀 il est dans ma liste des masqués depuis des mois haha avec plein d’autres ! Et ce qui est pas mal c’est que ça masque aussi si ils nous répondent ;)

avatar HoulaHup | 

Du coup, tu fais comment pour voir de qui on parle puisqu'il est masqué chez toi ?

avatar Baptiste_nv18 | 

@HoulaHup

Seul le contenu du commentaire est masqué 😉

avatar Lokan17 | 

Merci pour le retour j’ai hâte de recevoir M1 Max … prévu demain .. 🤞🏼

avatar foxot | 

Je trouve qu’il manque des éléments de comparaison dans l’article pour être vraiment pertinent.
Même si c’est toujours bien d’avoir quelques chiffres, on savait déjà qu’il surpassait tous ses prédécesseurs, la grande question serait plutôt pour moi comment se comporte le M1 Max face au M1 Pro d’entrée de gamme et sa variante avec les 10 coeurs CPU ? Est-ce que ça vaut le coup de mettre 700€ de plus pour le M1 Max 32c pour ce workflow spécifique ? Est-ce que l’option 64Go influe sur les performances, ou est-ce que 32Go donne les mêmes résultats ? Et 16 ?

avatar Florent Morin | 

Dans mon cas, les 64 Go, c'est parce que je manipule des fichiers CSV monstrueux. Mais on est dans du très spécifique.

avatar the_optimist | 

t'utilise quels softs pour tes cdv monstrueux ?

avatar Florent Morin | 

@the_optimist

Textmate 2.

avatar AirForceThree | 

Textmate 2 est une horreur pour ouvrir des fichiers text volumineux.
Vous devriez utiliser BBEdit (même la version gratuite), qui sait ouvrir des fichiers de plusieurs 10aines de Go instantanément, et qui ne rame pas ensuite lors de la navigation dans le fichier.

avatar marc_os | 

@ AirForceThree

Je plussoie au sujet de BBEdit (héritier de TextWrangler tout aussi génial).
Je l'utilise également pour des recherches multi-fichiers où il est hyper-efficace. (Parfait par exemple pour checher un truc dans le code source de darwin.) Son interface utilisateur n'est peut-être pas des plus modernes, mais pour un outil de dev, on s'en fout, c'est l'efficacité qui compte, et son UI va a l'essentiel.

avatar HoulaHup | 

Textmate est très mauvais pour les gros fichiers. Bbedit est ton ami.

avatar pboudoin | 

Pour des fichiers si gros, c'est mieux de passer par des packages python type pandas et consorts

avatar Dimemas | 

Merci Florent pour cet article c’est effectivement impressionnant, j’ai déjà l’impression que mon MBP M1 est beaucoup plus rapide que mes anciens Mac y compris le hackintosh que j’avais fait, ce qui fait que j’ai tout changer pour garder ce Mac.
Seul bêtise que j’ai fait, j’ai pris un 8go de ram en pensant bien faire et dans mon cas (3D légère et Xcode, VSC), je vois déjà les limites mais j’attends encore un peu avant de passer au M1pro en 14pouces.
Je peux attendre (les sous !) et je n’ai pas encore besoin d’autant de puissance mais je sens que ça venir (d’ailleurs je risque de prendre 32go de ram pour être tranquille au moins 5 ans !)
Mais peut-être qu’un M1 en 16go suffira non ?
J’adore cette machine

avatar Florent Morin | 

@Dimemas

J’ai bossé un an avec un Mac mini M1 16 Go. Ça le fait. Sauf si on utilise des apps gourmandes en RAM.

avatar marc_os | 

@ Florent Morin

> Sauf si on utilise des apps gourmandes en RAM.

C'est à dire ?

PS: Merci pour cet article très intéressant.
Je compte et dois m'acheter un de ces quatre un M1 pour mes développements Xcode perso*, mais comme c'est du perso c'est avec mes sousous à moi. Donc vu les tarifs, je dois prévoir au plus juste tout en sachant que je vais certainement garder cette future machine assez lontemps... J'écris depuis mon MBP de 2008 toujours en service (boosté avec SSD) !

(*) Pour l'instant des utilitaires, mais je prévois aussi un jeu avec simulation 3D avec SceneKit et RealityKit... Et je me demande si un Mac mini M1 actuel suffirait ou si je devrais prendre au moins un MBP, même de base.

avatar Florent Morin | 

@marc_os

Par apps gourmandes en RAM, je vois tout ce qui est manipulation de gros fichiers.

avatar marc_os | 

@ Florent Morin

Ok, merci.

PS: Il fut un temps reculé où on (une app) ne chargeait pas les gros fichiers entièrement en mémoire, ce qui de toute façon était impossible vu sa quantité très réduite.
(Je pense aussi à des gens qui utilisent des fichiers plist comme des bases de données - d'autres utilisent bien des fichiers XLS pour ça ! - et qui s'étonent d'avoir des problèmes de performances...)

avatar ditek | 

Pour un dev web comme moi, est ce utile de passer sur un M1 pro/max ?

Je me pose souvent la question sachant que je dev uniquement pour le web

avatar Florent Morin | 

Le M1 fait le job je pense. Ça sollicite moins la machine.

avatar Marius_K | 

@ditek

Pour du dev web, on n'a pas besoin d'une grande puissance, on ne fait aucune compilation et très souvent les tests sont faits sur des serveurs distants.
Et quand on fait en local à moins d'avoir une boucle foireuse, le processeur n'est jamais très sollicité.
Donc un M1 suffit largement.

Au passage signalons que MAMP a enfin été optimisé Apple Silicon.

avatar Dimemas | 

Bonne nouvelle pour mamp !

avatar joneskind | 

@GwenT

on ne fait aucune compilation et très souvent les tests sont faits sur des serveurs distants

En l'an 2000 peut-être.

Les frameworks Angular, VueJS, React reposent sur node.js. Ils sont compilés localement et selon le cas de figure (connexion à une API serveur nécessaire ou pas) exécutés sur le localhost de ta machine.

Je bosse actuellement sur un projet Vue un peu velu. Chaque compilation de production prend autour de 18s sur un Mac M1.

Par ailleurs, sans parler de ces frameworks, ça fait très longtemps qu'on compile des projets web, que ce soit le CSS (Sass, Less), le JS (minify, uglify), ajouter des hash etc...

avatar yd29021976 | 

@GwenT

En web, je n compile pad (beaucoup), mais on transpile pas mal (webpack pat exemple)
Sans compter le besoin de coeurs pour les containers docker pour se monter des env de test.

Donc « si », ça serait intéressant d’avoir le gain sur ce type d’usage entre intel/M1/M1 max ou pro.

Je cherche toujours d’ailleurs et je ne trouve rien sur ce sujet

avatar SOSx xSPECTRExZ | 

@ditek

J’utilise le Mac mini depuis environs 6 mois pour un usage professionnel.
J’ai une grosse application Java/Spring qui tourne sur Eclipse(Avec un Tomcat) et ça fonctionne très bien. Les performances sont au rendez-vous (Sauf quand Eclipse à des fuites de mémoire mais c’est un autre sujet). A coté de ça j’ai toujours des dizaines d’applications d’ouverte, dont VS code avec un serveur pour developper sur de l’angular. Idem c’est fluide. Je n’ai pas de comparaison avec les M1 Pro/max mais pour être passé d’un MacBook Pro mi-2015 I7 16go à M1 16Go, c’est le jour et la nuit. Non pas que mon I7 ne faisait pas le travail, mais c’était LENT ! ET je trouve qu’aujourd’hui c’est très rapide. Je ne passerais personnellement pas sur M1 Max/pro pour le moment, bien qu’il puisse y avoir encore un gap, mon Mac mini ne coute que 1200€ et je trouve se rapport qualité prix excellent. Autre et dernier exemple, sur mon MacBook Pro le jeu Factorio en configuration minimum avais régulièrement des grosses chute de framerate (-de 15fps contre 30-40fps habituellement), sur mon M1 en configuration max je suis à 60fps et très très très rarement des chutes de FPS aux alentours de 40), absolument rien d’injouable.
J’imagine qu’avec un M1pro/max il n’y aurais plus aucune chute du tout mais idem, est-ce que la différence de prix vaut le coup ? A vous de juger…

avatar ditek | 

@SOSx xSPECTRExZ

Pour ma part j’avais investi en lors de la sortie du MBP M1 en renouvelant mon vieux MacBook Pro 2014. Donc d’après vos retours pour le moment je vais garder encore ma machine qui fait déjà très bien le job😊

avatar Jeckill13 | 

@ditek

Je dirais non. Tu ne fais pas de compilation en développement web.

avatar joneskind | 

@Jeckill13

"Tu ne fais pas de compilation en développement web"

Si si, on en fait

avatar yd29021976 | 

@joneskind

Je dirais « transpiler » plutot que compiler dans ce contexte 😬😉

avatar joneskind | 

@yd29021976

Je comprends ce que tu veux dire. Javascript est un langage interprété plutôt que compilé, donc parler de compilation dans ce contexte est un peu un abus de langage. Mais ça reste le jargon employé pour décrire les processus de build dans le web. Et en tout cas ce sont des processus très lourds pour le CPU et le disque dur.

Pour la transpilation par contre c'est encore un peu différent. On parle de transpilation quand on traduit d'un langage à un autre (quand c'est possible). Faudrait voir ce que disent les oracles à propos de Babel (traduction d'un code ES6 en ES5) et de Compass (traduction de SCSS à CSS) mais je ne me risquerai pas à donner un avis définitif.

En développement web on parle de compilation pour tout un tas de trucs qui n'ont rien à voir ni avec la compilation, ni avec la transpilation.

Babelisation, minification, uglification, injection de polyfill, chunkification, concaténation...

Abominable !

avatar yd29021976 | 

@joneskind

Tu as raison, la plupart utilisent le terme « compiler » (exemple vue.js, webpack, angular)
A titre perso, Je n’aime vraiment pas utiliser ce terme 😉 Mais quoiqu’il en soit, on est d’accord que ca consomme du thread 😀

Pour en revenir a l’article, je serai vraiment intéressé de voir ce qu’apporte le m1 en terme de performances pour ce cas d’usage (ainsi que 4/5 containers) vs un core i9, et pourquoi pas un i7 d’un imac fin 2015 (le miens quoi 😉)

Mes 16go devenants quand meme un peu juste, il va me falloir une machine capable d’offrir 32go. Donc attendre 2022 pour le imac ou le mac mini « pro » (ou passer sur une machine windows en complément « dev server » ou en principale)

avatar joneskind | 

@ditek

Tout dépend de ton workflow.

Si tu utilises un framework que tu dois compiler, que tu codes en SASS/LESS, que tu utilises un linter, que tu transpiles en ES5 avec Babel etc, alors oui tu vas gagner pas mal de temps avec un bon CPU.

Le M1 Pro 10 cores est ta meilleure option. Il n'y a pas de différence entre les CPU du M1 Max et du M1 Pro, hormis la vitesse de la RAM, mais je ne pense pas que ça fasse une différence très significative.

Pour la quantité de RAM, là encore ça dépend de ce que tu fais. Mais si tu as l'habitude d'avoir en permanence 50 onglets dans Chrome, Safari Firefox Opera Edge toutes consoles dehors, un émulateur iOS et un émulateur Android, et le trio iTerm VSCode Fork d'ouverts alors n'hésite pas à prendre 16 Go de RAM, voire 32 pour être tranquille.

Si tu fais du HTML CSS JS Vanilla sans compilation/pré-processeur alors non, ça ne vaut pas le coup d'investir dans un Pro/Max. Le MBA M1 sera parfait pour toi. Ou l'iMac, si tu veux un bel écran.

avatar esclandre77 | 

On le veut l'article entier sur l'apprentissage automatique svp.

avatar pboudoin | 

Pour l'apprentissage automatique avec Turi, pour l'instant c'est toujours en passant par Rosetta. Turi n'est pas encore optimisé pour M1.

avatar misterfrank | 

J’ai hâte également prévu le 15

avatar Ensearque | 

Je n’ai pas encore fait de recherche sur internet donc je pose ma question ici :

Une version de TensorFlow optimisée M1 Pro et MAX est elle sortie ? Idem pour PyTorch ?

J’ai une machine distante avec Quadro RTX 4000. Mais souvent pour éviter la queue j’effectue quelques essais en local. Merci si quelqu’un a le temps de répondre

avatar stecollin | 

Il y un bug sur le lien du bas : quand on clique Test des MacBook Pro 2021 : un nouvel espoir -> on sort du site clubigen et on débranche sur le site macg.co donc on n'a plus accès à l'article.

avatar David Finder | 

@stecollin

Sur le dernier article de la série Tesla c’est pareil…
Ça doit être un bug général…

avatar droppix | 

J'ai dû acheter temporairement un macbook pro 16 M1 - 16GB 512GB de SSD, en attendant que les stocks du MAX 64 GB 2TB soit dispo, car l'ancien était insupportable...
Nous avons un très gros projet, lourd (Cryptos, Finance, Banque, ...) sous Xcode (iOS), et je dois dire que le temps de compilation est légèrement supérieur à mon ancien Mackbook pro 2020 (32 GB 1TB SSD), cependant là où c'est vraiment intéressant, c'est le déboggage, c'est le jour et la nuit.
Avant, sur certains points d'arrêts, je pouvais aller boire un café...

J'attends de voir avec un MAX, ce que cela va donner. A suivre...

avatar gillesb14 | 

Bonjour,
Je cherche depuis quelques temps des comparatifs pour Sketchup.
Sur mon PC du boulot c’est quasiment inexploitable (XpS 13 16go ram).
Sur le MBA M1 d’une amie c’est déjà beaucoup mieux.
Mais avec 8go de ram c’est vite limite.
Donc je me demande, quelle configuration prendre ? Un MBA avec 16go. Ou passer à un 14’´ à 32ou 64?
Est que le GPU aurait un impact sensible?

Si quelqu’un aurait des infos.. et mes excuses pour le hors sujet

avatar marenostrum | 

demande à ton patron le plus cher.

Pages

CONNEXION UTILISATEUR