Les bénéfices du M1 Max dans mon quotidien de développeur
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
.
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.
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 !
Spoil : aucun
@TrollMan06
Spoil: lire l’article c’est important
@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.
@Bounty23
Si, il y a :)
Fais glisser le commentaire à masquer vers la gauche et tape sur l’icône en forme d’œil barré.
@Bounty23 & Baptiste_nv18
Merci pour l'info. Y-a-t-il un équivalent sur macos?
Bonne journée à tous.
@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) ...
@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.
@zoubi2
Je ne voix pas cette fonction :/
il faut être abonné pour pouvoir le faire. bref c'est une fonctionnalité payante.
@marenostrum,
Merci pour l'information, je sais ce qu'il me reste à faire.
@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 ;)
Du coup, tu fais comment pour voir de qui on parle puisqu'il est masqué chez toi ?
@HoulaHup
Seul le contenu du commentaire est masqué 😉
Merci pour le retour j’ai hâte de recevoir M1 Max … prévu demain .. 🤞🏼
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 ?
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.
t'utilise quels softs pour tes cdv monstrueux ?
@the_optimist
Textmate 2.
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.
@ 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.
Textmate est très mauvais pour les gros fichiers. Bbedit est ton ami.
Pour des fichiers si gros, c'est mieux de passer par des packages python type pandas et consorts
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
@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.
@ 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.
@marc_os
Par apps gourmandes en RAM, je vois tout ce qui est manipulation de gros fichiers.
@ 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...)
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
Le M1 fait le job je pense. Ça sollicite moins la machine.
@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.
Bonne nouvelle pour mamp !
@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...
@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
@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…
@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😊
@ditek
Je dirais non. Tu ne fais pas de compilation en développement web.
@Jeckill13
"Tu ne fais pas de compilation en développement web"
Si si, on en fait
@joneskind
Je dirais « transpiler » plutot que compiler dans ce contexte 😬😉
@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 !
@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)
@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.
On le veut l'article entier sur l'apprentissage automatique svp.
Pour l'apprentissage automatique avec Turi, pour l'instant c'est toujours en passant par Rosetta. Turi n'est pas encore optimisé pour M1.
J’ai hâte également prévu le 15
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
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.
@stecollin
Sur le dernier article de la série Tesla c’est pareil…
Ça doit être un bug général…
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...
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
demande à ton patron le plus cher.
Pages