Ouvrir le menu principal

MacGeneration

Recherche

DispatchView expose le fonctionnement du multitâche sur Mac

Nicolas Furno

jeudi 11 mai 2017 à 12:04 • 11

macOS

Saviez-vous que les sauvegardes Time Machine de votre Mac ne débutaient pas précisément toutes les 60 minutes ? En théorie, la sauvegarde est mise à jour toutes les heures, mais dans les faits, elle est parfois en avance ou en retard de quelques minutes. Ce n’est pas un bug, c’est voulu : depuis macOS Sierra, la décision de lancer ou de retarder une sauvegarde dépend de Grand Central Dispatch (GCD).

La sauvegarde automatique de Time Machine se fait à peu près toutes les heures. Cliquer pour agrandir

Cette technologie est présente dans le système d’Apple depuis 2009 et Snow Leopard (et iOS 4 en 2010). GCD facilite la gestion des processeurs multi-core qui sont la norme depuis plus de dix ans pour les Mac. Avant son arrivée, les développeurs de chaque app devaient gérer tous les cœurs à disposition pour optimiser leurs logiciels. C’était une tâche difficile et très peu d’apps le faisaient et encore moins le faisaient correctement.

C’est pourquoi Apple a pris les choses en main avec GCD, une technologie qui met en parallèle les tâches au sein d’un programme et au sein du système d’exploitation. En fonction des besoins et des ressources disponibles, les tâches sont positionnées et programmées sur un cœur ou sur un autre. L’idée étant d’éviter les ralentissements en répartissant la charge sur tous les cœurs, notamment pour éviter le blocage complet de l’interface (la fameuse roue colorée de macOS).

Le principe de GCD est facile à saisir instinctivement. Néanmoins, Quand on essaie de comprendre comment il fonctionne concrètement, c’est une autre paire de manches. Le système est devenu extrêmement sophistiqué au fil des années et la prise de décision dépend d’un si grand nombre de critères que GCD apparaît comme une boîte noire pour la majorité des utilisateurs et même pour les développeurs. En particulier, la gestion de la priorité, pour savoir quelle tâche doit être exécutée en premier, est très difficile à comprendre.

L’icône de Grand Central Dispatch. Cliquer pour agrandir

macOS compte toujours plus sur ce système de gestion de tâches et c’est tout particulièrement le cas avec El Capitan et Sierra. Certains bugs de ces systèmes sont sans doute liés à GCD, puisqu’il prend en charge de plus en plus de fonctions du système. Les coupures de Bluetooth que l’on observe parfois avec Sierra sont peut-être associées à GCD plutôt qu’aux pilotes eux-mêmes.

Pour en revenir à Time Machine, un bug rare (le Mac ne devait pas entrer en veille pendant plusieurs jours de suite) corrigé avec macOS 10.12.4 pouvait bloquer complètement les sauvegardes automatiques. GCD est, au moins en partie, responsable : c’est lui qui lance une sauvegarde automatique, et non plus le processus historique launchd. Ce choix a permis à Apple d’optimiser encore davantage son système de sauvegarde et le choix d’initier ou de retarder une mise à jour dépend aussi de votre utilisation du Mac.

Une heure après la sauvegarde précédente, macOS essaie de deviner ce que vous faites avec votre ordinateur pour décider de lancer une nouvelle sauvegarde ou la retarder de quelques minutes. Cela passe par l’utilisation du processeur, naturellement, mais ce n’est pas le seul critère. GCD a été développé avec l’optimisation de l’autonomie en tête et le lancement de la sauvegarde dépend aussi d’autres choses certainement liés à l’état de la batterie sur les portables.

Cette sophistication permet d’améliorer les performances de macOS, mais elle complique au passage la recherche face à un bug. Pour essayer de mieux comprendre le fonctionnement de GCD, DispatchView est un utilitaire gratuit qui filtre l’historique de macOS (les logs) pour n’afficher que ce qui concerne GCD. Il affiche l’information sur deux colonnes : à gauche, la liste des messages envoyées par le Duet Activity Scheduler (DAS), le composant qui détermine la priorité de chaque tâche ; à droite, la liste Centralized Task Scheduling (CTS) qui exécute ou programme les tâches en fonction de cette priorité.

À gauche, l’analyse de GDC pour lancer ou retarder certaines tâches ; à droite, l’exécution des tâches en fonction de ce qui a été décidé. Ici, on voit la décision d’initier une sauvegarde Time Machine. Cliquer pour agrandir

L’interface est rudimentaire et les informations remontées par macOS ne sont pas toujours très lisibles. Mais en cas de problème lié à GCD, cet outil peut servir à déterminer la cause. Sur la capture d’écran, on voit à droite que la sauvegarde Time Machine a été initiée grâce à ce message :

2017-05-11 10:01:39.242046+0200  localhost UserEventAgent[52]: (com.apple.cts) [com.apple.xpc.activity.All] DAS told us to run com.apple.backupd-auto

On peut alors chercher dans la colonne de gauche la décision du DAS en retrouvant à peu près la même heure. Les messages ne sont pas explicites, mais vous verrez parfois des tâches qui sont suffisamment importantes et qui vont ainsi être exécutées par le CTS :

2017-05-11 10:01:39.240029+0200  localhost DuetHeuristic-BM[109]: (DuetActivitySchedulerDaemon) [com.apple.duetactivityscheduler.scoring] '<private>' CurrentScore: 0.931058, ThresholdScore: 0.780057 DecisionToRun:1

Et parfois, des tâches qui ne sont pas suffisamment importantes et qui ne sont pas exécutées. Ce qui revient à retarder la tâche en question et éventuellement la relancer quelques secondes ou minutes plus tard selon les cas. Voici à quoi cela ressemble :

2017-05-11 10:01:39.238408+0200  localhost DuetHeuristic-BM[109]: (DuetActivitySchedulerDaemon) [com.apple.duetactivityscheduler.scoring] <private>:[
<private> ] sumScores:29.020000, denominator:29.020000, FinalDecision: Must Not Proceed FinalScore: 0.000000}

Seuls les développeurs au sein d’Apple qui travaillent sur Grand Central Dispatch pourraient comprendre la logique du DAS et savoir pourquoi une tâche est importante ou non. Cet utilitaire ne vous aidera pas vraiment, mais il offre une plongée fascinante dans l’envers du décor pour les plus curieux.

Et si vous voulez aller plus loin encore, Apple propose de nombreuses sessions techniques sur GCD à cette adresse.

Ajouter ce site dans Google News

La Suisse prépare un plan B open source face à Microsoft 365

11:41

• 11


Logitech présente le MX Keypad, un pavé de commandes pour l’IA (et tout le reste)

10:24

• 4


Ubiquiti lance des packs Wi-Fi maillés plus accessibles pour la maison

08:12

• 26


iPhone 18 Pro : prix, design, photo, puce… le grand récap des dernières rumeurs avant le keynote

07:30

• 21


La RAM devrait « seulement » augmenter de 13 à 18 % au troisième trimestre

07:10

• 7


Emmanuel Macron veut offrir à la France son « Cannes du jeu vidéo »

06:39

• 48


Apple Watch Ultra 4 : le point sur les nouveautés attendues avant sa présentation

06:38

• 7


Quatre batteries externes magnétiques pour iPhone passées au banc d’essai, compatibles Qi2 à 25 W

07/09/2026 à 21:13

• 1


iOS 27 : cinq nouveautés pourraient arriver dans l’app Appareil Photo

07/09/2026 à 21:13

• 41


TV LG : des failles permettent d’écouter la pièce même écran éteint

07/09/2026 à 21:06

• 64


Amazon passe à l'AVIF pour les images, Google Chromium et Mozilla Firefox activent bientôt le JPEG XL

07/09/2026 à 19:00

• 9


Apple Watch Series 12 / Ultra 4 : quatre nouveautés se cachent dans watchOS 27

07/09/2026 à 18:59

• 24


NASmeister : un tableau de bord personnalisable pour les NAS Synology sur iPhone

07/09/2026 à 17:45

• 12


Bon plan : deux chargeurs Anker compacts pour le prix d’un en promo

07/09/2026 à 15:41

• 18


Dishylink : une app macOS pour gérer tous les réglages d'une connexion Starlink

07/09/2026 à 13:00

• 2


L'étonnant écran portable ultralarge et tactile de Corsair en promotion

07/09/2026 à 11:00

• 3