Android

Repères MacBook modernes pour le développement Android

Le 30 janvier 2022 - 8 minutes de lecture

 

Choisir un appareil n’est jamais aussi simple, mais les nouveaux SoC Apple Silicon pour Mac ont secoué le marché et rendu le choix encore plus difficile. Quel MacBook dois-je acheter ? En quoi sont-ils différents ? C’est difficile à comprendre. De plus, rechercher des tests approfondis est un sacré boulot.

Dans cet article, je vais vous donner un correct comparaison des vitesses de construction à l’aide de certains projets Android réels et d’un certain nombre de modèles de MacBook différents. En plus de cela, je vous dirai lequel acheter en 2022.

Dans ce test, j’ai utilisé les derniers ordinateurs portables MacBook Pro alimentés par Intel ainsi que certains des derniers MacBook avec M1.

  1. iMac 27″ Fin 2015 Intel Core i7 6700K | 24 GM RAM
  2. MacBook Pro 16″ 2019 i7 9750H 6 cœurs de processeur/12 threads | 16 Go de RAM
  3. MacBook Pro 16″ 2019 i9 9880H 8 cœurs de processeur/16 fils | 32 Go de RAM
  4. MacBook Air 2020 M1 | 16 Go de RAM
  5. Processeur MacBook Pro 14″ 2021 M1 Pro 8 | 16 Go de RAM
  6. Processeur MacBook Pro 14″ 2021 M1 Pro 10 | 32 Go de RAM
  7. Processeur MacBook Pro 16″ 2021 M1 Pro 10 | 32 Go de RAM
  8. MacBook Pro 16″ M1 Max | 32 Go de RAM

J’ai ajouté mon ancien iMac 27″ Fin 2015 au test pour voir à quel point les nouveaux modèles de Mac ont progressé.

S’assurer que tous les ordinateurs fonctionnent dans des conditions égales n’est pas facile, mais j’ai essayé de le rendre parfait :

  • Utilisation de la dernière révision de JDK 11. Pour Apple Silicon, j’ai utilisé Zulu ARM JDK
  • Utilisation de Gradle 7.3.3 pour créer des projets (la dernière version disponible au moment du test)
  • Déconnexion des écrans externes
  • Connexion de tous les ordinateurs à une source d’alimentation
  • Fermez autant de programmes que possible, y compris ceux d’arrière-plan
  • Fermez Android Studio !
  • Basculer l’ordinateur en mode performance (si disponible)
  • Placer tous les ordinateurs portables sur une surface plane et dure pour laisser entrer le flux d’air et refroidir l’ordinateur portable
  • Ne pas toucher les ordinateurs pendant les tests
  • Désactivation de l’indexation Spotlight ou ajout du dossier de projet de test aux exceptions.

Si vous connaissez d’autres conditions à prendre en compte avant les tests de référence, je serais heureux de les lire dans les commentaires ci-dessous.

J’ai exécuté les tests à l’aide de Gradle Profiler en mode benchmark, qui mesure le temps nécessaire à la construction d’un projet. Les résultats que vous verrez sont les valeurs moyennes de dix tests, précédés de deux échauffements qui n’ont pas compté.

Je mets tous les projets testés dans le référentiel, et chaque projet a son propre scénario de lancement de test (un performance.scenarios filet).

Voir les résultats exacts dans le tableau ci-dessous.

TiVi 0.6.3

TiVi est une petite application de suivi d’émissions télévisées basée sur trakt.tv.

Lignes de code Kotlin : 15K
Modules: 25

Ce projet est assez petit, mais même ici, Intel est considérablement en retard sur le M1. M1 Pro/Max a laissé M1 juste une seconde derrière. Ces tests nous montrent clairement une chose : même dans un petit projet comme celui-ci, vous pouvez voir qu’Apple Silicon est beaucoup plus rapide que l’Intel Core 9 de 9e génération.

Résultats du benchmark TiVi 0.6.3

ExoPlayer r.2.16.1

ExoPlayer est un lecteur multimédia populaire au niveau de l’application pour Android.

Lignes de code Java : 225K
Modules: 35

Ce prochain projet démontre les avantages d’avoir de nombreux cœurs hautes performances dans le M1 Pro/Max. Les résultats montrent une marge significative : M1 a obtenu un score de 39,4 secondes, tandis que le noyau M1 Pro/Max 10 a obtenu 28 secondes. Pendant ce temps, la meilleure puce Intel a marqué 43,9 secondes.

Résultats du benchmark ExoPlayer r.2.16.1

Mise au point 95.2.0

Focus est une version sécurisée et axée sur la confidentialité du navigateur Web Firefox.

Lignes de code Kotlin : 19K
Lignes de code XML : ~30K.
Modules: 3

Les repères pour Focus montrent les modèles déjà apparents. Cependant, ils montrent également que la version principale du M1 Pro 8 n’est pas significativement en retard sur la version complète du M1 Pro ou sur le M1 Max.

Résultats du benchmark Focus 95.2.0

Firefox 95.2.0

Firefox est une version complète du navigateur Web Firefox.

Lignes de code Kotlin : ~97K.
Lignes de code XML : ~100K.
Modules: 4

Compilation de code Kotlin plus lente par rapport à Java. Néanmoins, les processeurs Apple affichent une croissance constante de la vitesse de compilation. La seule chose est que vous ne voyez toujours aucune différence entre les processeurs M1 Pro 8 cœurs et 10 cœurs.

Résultats du benchmark Firefox 95.2.0

Signal 5.28.8

Signal est une alternative populaire à Telegram.

Lignes de code Java : 248K
Lignes de code Kotlin : 42K
Lignes de code XML : ~270K
Modules: 13

Vous pouvez enfin voir que les 8 cœurs du M1 Pro sont plus lents que la version standard de ce processeur. En dehors de cela, il ne fait que soutenir les conclusions tirées des projets précédents.

Résultats du benchmark Signal 5.28.8

Télégramme 8.2.1

Telegram Android GitHub est un messager populaire. Le code y est assez particulier : il y a NDK et toute l’interface utilisateur est en code Java, il n’y a pas de Kotlin et pas d’apt ou de kapt pour générer le code.

Lignes de code Java : 700K
Lignes de code C : 988K
Lignes de code XML : ~40K
Modules: 1

Telegram Android est le plus gros projet que j’ai testé, et il montre clairement la différence entre les processeurs. Les benchmarks étaient stupéfiants : c’est le seul projet que j’ai testé où les i7 et i9 de la version 2019 du MacBook Pro pouvaient créer un projet plus rapidement que l’Apple M1 du MacBook Air. Bien sûr, j’avais besoin de savoir pourquoi cela s’était produit.

Résultats de référence de Telegram 8.2.1

Il s’avère que la raison en est CMake et les outils de compilation natifs, qui sont assez abondants dans Telegram. Apple M1 exécute la compilation à l’aide de Rosetta 2. Au moment où j’écris, Android NDK ne prend pas encore en charge Apple Silicon. Cependant, CMake (à partir de la version 3.19) et d’autres outils le prennent déjà en charge. Vous pouvez lire les détails ici.

Donc, à l’avenir, nous aurons un coup de pouce significatif : Apple M1, à tout le moins, a une chance de prendre le dessus sur i7 et (rêvons !) même sur i9. Alors, attendons l’outillage fini. Le test montre également clairement que le M1 Pro/Max exécute un logiciel non optimisé, il est donc même capable de prendre en charge le i9 de 9e génération.

Résultats du benchmark

Vous ne pouvez pas supprimer Intel Core si votre projet contient beaucoup de code natif. Sinon, il n’y a aucune raison d’utiliser des processeurs Intel : ils sont surpassés même par l’Apple M1 le plus basique. Avec le temps, l’outillage sera terminé et les avantages d’avoir un processeur Apple deviendront encore plus évidents.

MacBook Air avec M1 serait suffisant pour la majorité des développeurs mobiles. Cependant, je recommanderais d’acheter celui avec 16 Go de RAM. De cette façon, vous pourrez créer des applications pour Android et iOS, ainsi que tester le développement multiplateforme (Kotlin Multiplatform, Flutter). L’énorme avantage est de ne pas avoir de refroidisseurs, ce qui le rend silencieux mais parfois assez chaud (chaque fois qu’une construction prend particulièrement longtemps).

Si vous travaillez sur de grands projets et souhaitez des capacités maximales ou plus de 16 Go de RAM, je vous recommande de regarder de plus près le MacBook Pro avec le processeur M1 Pro 10 cœurs. Le modèle 16 pouces sera plus rapide et plus silencieux.

Le M1 Max et le M1 Pro n’ont pas montré de différence significative dans les résultats des tests. Si vous êtes développeur, cela ne vaut la peine d’acheter la version Max que si vous avez besoin de 64 Go de RAM ou si vous avez besoin de plus que du développement comme le montage vidéo ou de travailler avec des graphiques 3D. Et cela ne vaut que la peine d’acheter le modèle 16 pouces – le GPU du 14 pouces a un FPS inférieur, et le processeur commencera à s’étrangler beaucoup plus tôt et deviendra beaucoup plus fort en cas de surchauffe. Gardez également à l’esprit que le modèle 14 pouces a une batterie plus petite, donc même si vous ne faites rien de complexe, sa durée de vie sera plus courte par rapport au modèle 16 pouces.

J’aimerais continuer et comparer les performances de compilation sur les processeurs AMD et Intel haut de gamme, mais je n’ai aucun moyen de le faire pour le moment. J’ai déjà fait les tests sur le Ryzen 5950X avec Linux, et c’est remarquablement rapide ! Les premiers benchmarks synthétiques du I9 12900HK sont prometteurs ! Mais c’est un sujet pour un autre article…

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.