Swift fait jouer la concurrence pour exploiter la puissance des processeurs Apple

Florent Morin |

Des plus petites fonctions aux plus grandes révolutions, Apple pose patiemment ses pions. Avec l’infrastructure de compilateur LLVM, elle assure une parfaite optimisation du code. Avec ARC, elle assure une parfaite gestion de la mémoire. Avec Dispatch, elle assure une parfaite utilisation des ressources du processeur. En facilitant la programmation concurrente dans Swift, elle poursuit ses efforts tout en débarrassant les développeurs d’une tâche complexe et pénible. Swift gère mieux les fils, et ne vous fera plus perdre le fil !

Swift ne vous fera plus perdre le fil (d'exécution)

Retour à Grand Central (Dispatch)

Pour bien comprendre, il faut revenir au fonctionnement de Dispatch, aussi appelé Grand Central Dispatch. Ce système permet d’exploiter toute la puissance des cœurs des processeurs modernes, en exécutant des tâches parallèles. Prenons l’exemple d’une application allant chercher des données sur internet pour les enregistrer dans une base de données, puis les afficher à l’utilisateur.

avatar nikoethore | 

Encore un article pointu et très interessant. Super boulot !

avatar iValFR | 

Super article, très intéressant à lire !
Et super intervention chez iWeek Florent 🙂

avatar Florent Morin | 

@iValFR

Merci 😁

avatar raoolito | 

@FloMo

bravo pour cet article passionnant !
cela m'a rappelé une des theories sur les futurs macpro qui embarqueraient un nombre conséquent de coeurs. (d'ailleurs les puces M1x aussi). Cela serait la preparation du truc.

avatar Florent Morin | 

@raoolito

Ça va augmenter significativement les performances et la qualité des apps.

Je suis en train de mettre à jour une app vers Swift concurrency. C’est du délire. 😍

Tout devient plus clair.

avatar franckontheweb | 

Super article merci !

avatar benjaminrousseau (non vérifié) | 

Un super article, très intéressant. Merci ! 🙏

avatar frankm | 

« Le fil d’exécution principal doit être disponible au maximum, car c’est lui qui gère l’interaction avec l’utilisateur »
Comme une impression de philosophie contraire sur Windows

avatar RenaudL (non vérifié) | 

Pour une fois qu’Apple ne verrouille pas la concurrence. :)

avatar morpheusz63 | 

Enfin, un article digne d'intérêt, merci à toi🙏🙏🙏

avatar chepiok | 

Super article effectivement !!!! Compréhensif et agréable.

avatar Thaasophobia | 

Bravo et merci pour cet article très clair.

Pourquoi ne pas étendre le concept à un modèle de "computation" distribuée? permettant l'exécution de processes sur plusieurs équipements?
La démonstration d'Universal Control, ouvre de grandes perspectives.
Apple devrait déveloper un jeu d'instructions au niveau de l'OS programmable par Swift pour facilement tirer partie de la puissance de calcul inutilisée d'un équipement dormant (iOs, iPadOs, Mac OS, Linux ...).
Une sorte protocole RPC de bas niveau totalement intégré et sans sa complexité intrinsèque... à la sauce Apple, mis à disposition de toutes les applications de calculs intensifs (traitement video, audio, AI,...)
Evidement, la communication sera un goulot d'étranglement mais en passant par Thunderbolt 4 ça pourrait donner des résultats intéressants pour des calculs lourds.

avatar Florent Morin | 

Disons qu'on est à l'étape 1. Et c'est déjà une énorme étape !

avatar Thaasophobia | 

@ Florent Morin

Énorme en effet ! ça va dans le bon sens...

avatar amonbophis | 

Est ce que ce genre de procédés est intégré dans Linux ou Windows via leur langage de programmation? Ou cela fait-il de Apple via swift une exception?

avatar Florent Morin | 

A priori, la syntaxe est disponible dans les versions Linux de Swift. Cela existe dans la plupart des langages.

Mais par contre, la gestion des tâches concurrentes directement dans le langage, c'est propre à Apple.

avatar ney | 

@FloMo

Article très intéressant merci ! Y’a moyen d’en savoir un peu plus sur comment c’est intégré dans l’OS ? Ou Apple est trop cachotier ? 🙃 en tant que développeur couches basses ça m’intéresse pas mal ☺️

avatar Florent Morin | 

@ney

Tout est expliqué ici.

https://developer.apple.com/wwdc21/10254

avatar ney | 

@FloMo

Merci !

avatar amonbophis | 

Donc les langages de programmation cross plateforme (electron,…) ne bénéficient pas de ces avantages? On se retrouve alors avec des applications bien codées avec les spécificités du Mac et d’autres non : cela ralentira les bons élèves…

avatar hougoul | 

Ce que j’aime bien dans swift, c’est d’avoir pris les bonnes idées des autres languages de programmation

avatar Thaasophobia | 

@hougoul

"Ce que j’aime bien dans swift, c’est d’avoir pris les bonnes idées des autres languages de programmation"

C'est ce que font pratiquement tous les languages modernes...
La concurrence est rude mais saine.

CONNEXION UTILISATEUR