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 puce M5 Ultra entre dans le top 5 mondial de Geekbench, la puce M6 en première position

15/09/2026 à 23:40

• 9


Le début du Hackintosh ARM : macOS 15 (presque) sur un ordinateur Huawei

15/09/2026 à 21:40

• 3


Précommandes : l’iPhone Duo semble déjà faire de l’ombre aux iPhone 18 Pro

15/09/2026 à 21:27

• 48


iOS 27 : comment personnaliser le rendu sonore des AirPods grâce au nouvel égaliseur

15/09/2026 à 21:27

• 14


watchOS 27 laisse les vieilles apps 32 bits sur le bord de la route

15/09/2026 à 21:27

• 2


Test du Dell KM746, un kit clavier/souris qui adopte des supercondensateurs pour une charge ultrarapide

15/09/2026 à 20:30

• 9


Première apparition publique un peu terne pour l’iPhone Duo

15/09/2026 à 17:59

• 68


Nouveau décor dans les Apple Store : ça va déménager

15/09/2026 à 16:55

• 19


Quand allez-vous installer macOS Golden Gate ?

15/09/2026 à 15:43

• 83


Elon Musk met fin à son bras de fer avec Apple, mais poursuit OpenAI

15/09/2026 à 12:12

• 7


Prime Day : Amazon remet ça les 6 et 7 octobre avec les « Jours Flash Prime »

15/09/2026 à 11:37

• 3


Les forfaits iCloud+ vont inclure Apple Arcade et Apple TV sans surcoût dans plus de 100 pays, mais pas en France

15/09/2026 à 11:34

• 64


iPhone reconditionné : Certideal joue la carte de la transparence avec de vraies photos

15/09/2026 à 11:30

• 8


John Ternus sur Canal+ : la continuité avec Tim Cook, jusque dans le discours

15/09/2026 à 10:26

• 21


macOS 27 abandonne Intel, mais son installateur n’a jamais été aussi lourd

15/09/2026 à 10:24

• 30


L’IA menace l’humanité ? Trump crie au « canular » et charge Google

15/09/2026 à 08:30

• 50