J’ai des PC sous Windows 7 dont la mise à jour automatique est désactivée. J’effectue les mises à jour par lot environ une fois par mois. Mais chaque fois, la « recherche de mises à jour » prend 15 à 30 minutes. Je ne comprends pas pourquoi la vérification des mises à jour peut être aussi lente. Je me demande ce qui se passe en arrière-plan. Est-ce qu’il calcule des empreintes de hachage ? Mes PC avec les mises à jour automatiques activées subissent-ils le même sort à chaque démarrage (sans que j’en sois conscient) ?
La partie « vérification des mises à jour » est si lente parce que :
Windows 7 utilise le Component-Based Servicing, ce qui signifie que Windows Update doit travailler énormément pour déterminer les dépendances et interdépendances des fichiers et composants, maintenir des versions côte à côte des anciens fichiers/composants, tout en permettant la désinstallation de mises à jour/composants individuels sans casser d’autres mises à jour/composants, tout en tenant compte de la supersédence et d’autres facteurs. Le code qui fait tout cela doit être d’une complexité infernale.
Windows 7 64 bits doit maintenir les versions 32 bits et 64 bits de chaque mise à jour.
Windows doit maintenir les versions GDR et LDR de chaque mise à jour, ce qui signifie que sous Windows 7 64 bits, vous obtenez GDR 32 bits, LDR 32 bits, GDR 64 bits, LDR 64 bits pour chaque mise à jour.
Le code derrière Windows Update est très inefficace, probablement en raison de sa complexité conceptuelle. Mes observations au cours des dernières années montrent que, à mesure que le nombre total de mises à jour publiées a augmenté, le temps de vérification des mises à jour a augmenté de manière presque exponentielle. Pour moi, cela indique l’utilisation d’algorithmes récursifs, peut-être pour déterminer la supersédence ou résoudre les dépendances.
Malheureusement pour nous, Microsoft n’aime pas parler des mécanismes internes de Windows, nous finissons donc par devoir comprendre par nous-mêmes ou spéculer.