!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> Les performances
  1. John Siracusa
    1. Mountain Lion
      1. Introduction
      2. Achat et installation
      3. Changements d'interface (1)
      4. Changements d'interface (2)
      5. Changements d'interface (3)
      6. Applications (1)
      7. Applications (2)
      8. Applications (3)
      9. Applications (4)
      10. Applications (5)
      11. iCloud(1)
      12. iCloud(2)
      13. iCloud(3)
      14. Gatekeeper(1)
      15. Gatekeeper(2)
      16. Retina et HiDPI
      17. Fourre-tout (1)
      18. Fourre-tout (2)
      19. Fourre-tout (3)
      20. Fourre-tout (4)
      21. Fourre-tout (5)
      22. Fourre-tout (6)
      23. Recommandations
      24. Deux pères, un fils
    2. Lion
      1. Introduction
      2. Installation
      3. Revoir les fondamentaux
      4. Redimensionnement des fenêtres
      5. Et voici pour les cinglés
      6. La gestion des fenêtres
      7. Le modèle de document
      8. le modèle des processus
      9. Les éléments internes (1)
      10. Les éléments internes (2)
      11. ARC
      12. Le système de fichiers
      13. Ses modifications dans Lion
      14. Documents, résolution
      15. Le Finder
      16. Mail, Safari
      17. Fourre tout (1)
      18. Fourre tout (2)
      19. Recommendations
    3. Snow Leopard
      1. Introduction
      2. Le ticket d'entrée
      3. L'installation
      4. Nouvel aspect
      5. Détails internes
      6. Quick Time X
      7. Système de fichiers
      8. Faire plus avec plus
      9. LLVM et Clang
      10. Les blocs
      11. Concurrence
      12. Grand Central Dispatch
      13. Asynchronicité
      14. Open CL
      15. La différence...
      16. Quick Time Player
      17. Le Dock
      18. Le Finder
      19. Exchange
      20. Performances
      21. Fourre tout (1)
      22. Fourre tout (2)
      23. Le futur
    4. Leopard
      1. Introduction
      2. L'héritage
      3. Nouvel aspect 1
      4. Nouvel aspect 2
      5. Le noyau
      6. 64 bits
      7. FS Events
      8. Core animation
      9. Quartz GL
      10. Core UI
      11. Détails internes
      12. Le Finder
      13. Le Dock
      14. Time Machine
      15. Performances
      16. Pot pourri
      17. Demain
    5. Tiger
      1. Introduction
      2. Retour sur le passé
      3. Nouvel aspect de Tiger
      4. Mises à jour du noyau
      5. Le lancement
      6. Les méta-données
      7. Attributs étendus
      8. Listes de contrôle d'accès
      9. Spotlight 1
      10. Spotlight 2 : analyse et potentiel
      11. Types de fichiers
      12. Méta-données : la fin
      13. Quartz
      14. Quartz 2D Extreme
      15. Core Image
      16. La vidéo sous Tiger
      17. Dashboard
      18. Le Finder
      19. Les performances
      20. Pot pourri
      21. Conclusion
    6. Panther
      1. Introduction
      2. Les précédents
      3. L'installation
      4. Nouvel aspect
      5. Performances
      6. Changement rapide d'utilisateur
      7. Gestion des fenêtres
      8. Exposé
      9. Le Finder
      10. Performance du Finder
      11. Toujours le même
      12. Safari
      13. XCode
      14. Conclusion
    7. Jaguar
      1. Introduction
      2. Le nom
      3. L'installation
      4. Modifications d'Unix
      5. Dévelopeurs...
      6. Quoi de neuf
      7. Rendezvous
      8. Quartz Extrême
      9. Performance
      10. Compositions
      11. Le Finder
      12. Applications
      13. Sherlock
      14. Le portrait
    8. Puma
      1. Prelude
      2. Introduction
      3. Installation
      4. Réglages système
      5. Performance
      6. Redimensionnement des fenêtres
      7. Utilisation de la mémoire
      8. Diagnostics de mémoire
      9. L'environnement Classique
      10. L'interface Utilisateur
      11. Le Finder
      12. Extensions de fichiers
      13. Divers, conclusion
    9. Cheeta (Mac OS X 10.0)
      1. Qu'est ce que Mac OS X
      2. Installation
      3. Le démarrage
      4. Utilisation de la RAM
      5. Performance
      6. Performance des applications
      7. Stabilité
      8. L'interface utilisateur
      9. Le Finder
      10. Le navigateur du Finder
      11. Le Finder (divers)
      12. L'interface utilisateur
      13. Os X Classique
      14. Système de fichiers
      15. Unix
      16. Applications
      17. Conclusion
    10. Les débuts de MacOsX
      1. 1999 : OSX DP2
      2. 2000 : Quartz et Aqua/a>
      3. Fin de la lune de miel
      4. la première bêta publique
      5. 2001 : Mac OS X 10.0
      6. Un investissement
    11. Finder Spatial
      1. Introduction
      2. Interfaces spatiales
      3. Le Finder spatial
      4. Le concierge
      5. Un nouveau Finder
      6. Le browser
      7. Le browser spatial
      8. Finder et méta-données
      9. Les modèles
      10. Pensées finales

Mac OS X 10.2 : Jaguar (9)




Les performances

Jaguar est catalogué comme une livraison de caractéristiques, principalement parce que, des caractéristiques, il n'y en a pas beaucoup. Les nouvelles caractéristiques sont aussi plus faciles à vendre que des améliorations de performances. Les performances de Mac OS X ont été examinées en détail dans le compte rendu de 10.1, et la plupart de ces observations restent vraies pour 10.2. Mais alors que 10.2 ne représente pas un saut aussi grand que celui de 10.1, la performance s'est quand même améliorée dans de nombreux domaines.

Le temps de démarrage est nettement plus rapide sous Jaguar, largement grâce à ses possibilités de démarrer des services en parallèle à condition qu'il n'y ait pas de dépendance entre eux (par exemple, la synchronisation de l'heure sur le réseau ne peut pas démarrer avant que le réseau l'ait fait). Ceci est particulièrement utile quand un des éléments de démarrage prend beaucoup de temps à s'accomplir (par exemple, en réclamant une adresse IP à un serveur DHCP occupé). Plutôt que de bloquer toute la séquence de démarrage en attendant qu'une tâche qui prend beaucoup de temps soit terminée, Jaguar continuera à lancer les autres services indépendants.

Sur le G3/400, la séquence de démarrage a été dominée par POST et le nouvel écran avec une pomme grise. Quand la barre de progression du démarrage est apparue, elle a glissé à la fin très rapidement, une réduction de 20 secondes sur le temps de démarrage de 10.1. Le G4/400 a aussi démarré un peu plus vite, mais il a une adresse IP Statique, et était déjà très rapide (n'ayant pas à attendre une adresse du serveur DHCP).

Sur le front de l' utilisation de la mémoire, Jaguar autorise maintenant la caractéristique précédemment invalidée de compression du tampon de fenêtre du serveur de fenêtre. Sous Jaguar, les tampons de fenêtre "inactifs" sont compressés pour sauvegarder de la mémoire. Comme beaucoup, de fenêtres contiennent de vastes zones d'espace vide, (par exemple, de longues lignes avec la même couleur), elles peuvent se comprimer très facilement à l'aide d'un algorithme simple comme le RLE (run length encoding, par exemple 'pixel blanc x 200 au lieu de "pixel blanc, pixel blanc, pixel blanc, etc...") . La compression dans les fenêtres est indépendante de Quartz Extrême, si bien que quiconque utilise Mac OS X en profite.

La vitesse de lancement des applications s'est améliorée sous Jaguar, mais l'amélioration n'est en rien comparable à l'énorme saut fait entre 10.0 et 10.1. J'ai effectivement répété la série de tests du rapport sur 10.1, mais les résultats ont été quelque peu ambigus parce que presque toutes les applications testées ont été remaniées depuis 10.1. En général, les durées de lancement ont été de 1 à 3 secondes plus rapides sur jaguar. Plusieurs applications liées se sont aussi arrêtées de rebondir plus tôt qu'elles ne le faisaient sous 10.1.

L'amélioration de vitesse est vraisemblablement associée à des modifications (1) du noyau Mach de Jaguar. Voici une explication dans la technote 2053 (1) d'Apple :

Pour réduite les temps de lancement des applications, le noyau conserve désormais des informations sur l'environnement de travail d'une application entre deux lancements (dans /var/vm/app_profile).

Ces fichiers dits "de préchauffage" sont une variante d'une optimisation bien connue pour réduite le temps de lancement des applications, mais il est un peu décevant que le bénéfice n'en soit pas plus important. Néanmoins, c'est une bonne chose de voir Apple travailler dur pour améliorer cet aspect de l'expérience utilisateur. (Oui, j'ai carrément appelé à une modification du noyau pour améliorer les temps de lancement des applications qui "travaillent dur" :-)

La roulette multicolore redoutée a un nouveau look sous Jaguar, mais elle intervient à peu près aussi souvent qu'elle le faisait sous 10.1. Comme ce disque est simplement une indication qu'une application n'a pas répondu à des évènements après quelques secondes, c'est effectivement un problème d'application. Mais si l'application est bloquée sur un appel système qui prend trop de temps, cela peut aussi être un problème d'OS. Dans un cas comme dans l'autre, c'est embêtant.

Jaguar minimise ces ennuis en ré-affichant un curseur normal quand il n'est plus sur la fenêtre d'une application qui ne répond plus. Cela fait savoir à l'utilisateur que les autres applications fonctionnent toujours correctement, et vont répondre correctement si on les active. C'était vrai aussi dans les précédentes versions de OS X, mais le curseur ne changeait pas, et laissait les utilisateurs supposer qu'ils devaient attendre.

Bien que le défilement soit encore beaucoup plus lent qu'il ne le devrait, la performance s'est nettement améliorée sous Jaguar. Les versions précédentes de Mac OS X devaient redessiner tout le contenu d'une fenêtre pendant le défilement. Jaguar se contente de décaler le contenu existant vers le haut ou vers le bas quand c'est nécessaire, ( une chose qui peut être faite matériellement sur la carte vidéo, même sans Quartz Extrême), puis re-dessine seulement la portion nouvelle de la fenêtre. (Cet effet est facilement observable à l'aide de l'application Quartz Debug qui est fournie sur le disque des outils de développement. Mettez en route "l'écran d'affichage des mises à jour", et faites défiler quelques fenêtres).

La modification de taille des fenêtres reste très lente, particulièrement dans les applications en "métal brossé" comme iTunes et iPhoto. Ce re-dimensionnement semble en fait encore pire sous Jaguar, une impression donnée par la multiplication des interfaces en métal brossé. La chose qui rend ce re-dimensionnement si lent a besoin d'être identifiée et corrigée. Quartz Extrême n'est d'aucune aide mesurable, donc à l'évidence, ce n'est pas le coût supplémentaire de la composition qui est responsable.

Pour évaluer les améliorations effectives de performance de Quartz Extrême sur mon G4/800, je suis revenu à mon vieux mode de fonctionnement : la fenêtre transparente du terminal. D'abord, j'ai téléchargé la version la plus étendue de la suite Clone War (1) de Star Wars.

Pour définir une base de départ, j'ai lancé le film tel quel. Comme je m'y attendais, le G4/800 n'a eu aucun problème pour l'afficher au taux de 24 trames par seconde. La torture est intervenue quand j'ai mis une simple fenêtre transparente du terminal (80 x 24, transparence 0,25 -pour 1 entièrement opaque-) au dessus du film. J'ai noté les nombres minimum et maximum de trames affichées (sur une seconde ou plus). Puis j'ai répété le test en mettant deux fenêtres de terminal transparentes par dessus la fenêtre du film, puis trois, puis quatre, et ainsi de suite. Voici les résultats dans le tableau suivant :

figure

En réalité, j'ai fait les tests avec beaucoup plus de 5 fenêtres au-dessus de la fenêtre du film. Sous Mac OS 10.1, L'affichage était pratiquement anéanti au delà de 5 fenêtres. Le film s'arrêtait entièrement (0 trame par seconde), pendant une seconde ou plus, plusieurs fois de suite, et le son (qui a commencé à lâcher au bout de 4 fenêtres) était complètement inaudible.

Sous jaguar, avec Quartz Extrême validé, le GPU montre effectivement sa puissance. J'ai pu rajouter des fenêtres transparentes jusqu'à 25, et je me suis lassé. Le taux de rafraichissement n'a pas chuté du tout. Impressionnant !

Le moment était venu de retirer toutes les entraves, et de libérer la redoutable fenêtre transparente et gigotante du terminal. Le test est le même que ci-dessus, à part que la fenêtre supérieure du terminal est agitée aussi rapidement qu'on peut le faire, au sommet de toute la pile. C'est ce test qui a provoqué les sursauts de iTunes sous Mac OS X 10.0, et a mis à genou la vidéo sous 10.1. Voici les résultats pour 10.2 avec Quartz Extrême qui affichent le taux de rafraîchissement minimum obtenu (pendant plus d'une seconde). Les résultats de 10.1 sont aussi affichés par comparaison.

figure

La chose est sans merci pour Mac OS X 10.1. La vidéo a été complètement stoppée en agitant vigoureusement une seule fenêtre transparente du terminal. Et sans surprise, les choses ne se sont pas améliorées quand le nombre de fenêtres transparentes (et stationnaires) a augmenté.

Jaguar avec QE est resté champion jusqu'à la quatrième fenêtre. Après, il a commencé à se dégrader de façon pratiquement linéaire. Bien que cette performance soit bien meilleure que 10.1 sans QE, j'ai voulu savoir exactement ce qui, dans l'agitation de la fenêtre supérieure provoquait la perte de performance. Après tout, la quantité de calculs de composition semble égale, et peut même être potentiellement plus faible, puisque la fenêtre supérieure s'écarte complètement de la fenêtre vidéo en cours du fait de l'agitation.

Ma première idée est que cela pouvait être un problème de largeur de bande. Peut-être que l'agitation de la fenêtre entraînant une saturation du bus AGP ? Mais cela n'avait pas beaucoup de sens, surtout avec 64 Mo de VRAM, et un ensemble de fenêtres qui ne changeaient pas du tout (à l'exception de la vidéo). Les tampons de fenêtre inchangés pour toutes les fenêtres du terminal pouvaient tenir confortablement dans la mémoire vidéo de la carte.

Alors, j'ai essayé de considérer les choses de façon plus logique. QuickTime a besoin de cycles CPU pour décoder l'audio et la vidéo du film. Une réduction du taux de rafraîchissement signifie que QuickTime ne dispose pas d'assez de cycles CPU. Donc, l'agitation de la fenêtre transparente du terminal doit prendre des cycles CPU. Le lancement de top a permis de le vérifier : le serveur de fenêtres utilisait environ 70 % des cycles CPU du G4/800 quand j'agitais la fenêtre au sommet des quatre autres. Cela prenait progressivement moins de cycles de CPU à mesure que le nombre de fenêtres transparentes stationnaires diminuait.

Cela explique pourquoi le taux de rafraîchissement de la vidéo a commencé à chuter, mais qu'est-ce qui explique le besoin accru de cycles CPU ? Le test avec des fenêtres stationnaires a montré à quel point les calculs de composition sont bien gérés par le GPU. Avec 25 fenêtres stationnaires, il n'y avait pas de baisse du taux de rafraîchissement. Pourquoi l'agitation d'une fenêtre réclame-t-elle tant de participation du CPU ? Et, ce qui est encore plus difficile à comprendre, pourquoi la participation de CPU augmente-t-elle proportionnellement au nombre de fenêtres stationnaires sous la fenêtre qui est agitée ?

Malheureusement, je n'ai pas eu le temps d'explorer plus avant les limites de Quartz Extrême, car il y a beaucoup d'autres choses intéressantes de Jaguar qui ont accaparé mon attention. En plus, l'exemple ci-dessus est peu susceptible de se présenter dans une utilisation journalière. Les fenêtres stationnaires sont beaucoup plus communes que des fenêtres agitées, et QE les gère sans difficulté. Mais ce serait quand même bien que le mouvement d'une fenêtre se passe avec la même facilité.

Bien que QE ne facilite pas le re-dimensionnement des fenêtres et n'est pas responsable de l'amélioration de la vitesse de défilement, vous pouvez certainement faire apparaître le système Mac OS X plus rapide en exploitant la grande force de QE : la composition.

(1) Liens disparus...