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

Performance

Poussé à ses limites, le système de mémoire virtuelle d'OS X se comporte aussi bien qu'on peut l'espérer. Mais il y a encore plus de conditions handicapantes au tournant. L'exemple le plus méchant que j'ai rencontré est l'interaction entre l'environnement classique et des entrées-sorties de disque massives. Quand j'ai installé le CD des outils de développement sur un système chargé légèrement, une poignée d'applications classiques que j'avais ouvertes s'est complètement arrêtée de répondre. Les autres applications étaient elles aussi paresseuses, mais rien de semblable au lock-out complet sous classique. Après la fin de l'installation, tout est redevenu normal, mais je qualifierai une telle baisse de performance inexplicable comme une bogue de taille.

Assez de mauvais traitements. Voyons maintenant comment Mac OS X se comporte en "utilisation normale". Cela se révèle être mitigé. Nous avons déjà vu le cas du lancement d'applications : Classique, bien ; application native OS X, pas si bien. Les lecteurs qui ont suivi nos articles précédents sur Mac OS X sont bien sûr curieux au sujet des manques de performance qui ont assailli Mac OS X au cours de son développement. J'ai le regret de dire que, pour l'essentiel, ils demeurent.

Redimensionnement des fenêtres

La vedette est le redimensionnement des fenêtres opaques. Sur mon G3/400, elle est partout d'une lenteur inadmissible. Toutes les interactions de redimensionnement opaque nécessitent de l'attention et du temps qui vont au delà de limites du raisonnable. L'interaction ressemble à la surveillance du compas en aviation : une correction excessive en réponse à un instrument qui répond avec retard. Sous OS X, cela marche ainsi : vous attrapez le coin de la fenêtre et le déplacez pour la rendre plus grande ou plus petite. Visuellement, rien ne se passe, si bien que vous déplacez un peu plus, et vous vous rendez compte que vous avez outrepassé la taille que vous vouliez. Vous corrigez l'action, et le cycle se répète, en oscillant jusqu'à ce que vous atteigniez la taille voulue.

Comparé à l'abstraction de la ligne grisée utilisée sous Mac OS classique pendant le redimensionnement d'une fenêtre (voir figure 1), le redimensionnement opaque de Mac OS X est sensé fournir une meilleure réponse visuelle de la manipulation. Mais la réalité est que les mauvaises performances rendent le redimensionnement opaque de Mac OS X moins réactif, avec une sensation plus mauvaise de la manipulation effectuée que celle des lignes grisées de Mac OS Classique.

figure

Fig. 1 : le redimensionnement sous Mac OS 9 : abstrait, mais toujours réactif.

Est-ce ce que ce problème rend OS X entièrement inutilisable ? Evidemment non. Est-ce que cela s'améliore avec un matériel plus rapide ? seulement de façon marginale. Mais celui qui trouve la performance acceptable a à mon avis de bien piètres exigences. Même sur le G450 dual, c'est insupportablement lent. Et on ne peut pas nier le fait que c'est beaucoup plus lent et moins réactif que les lignes grisées de Mac OS classique. Rappelez-vous le but du redimensionnement opaque : un meilleur contrôle visuel, et une meilleure sensation de manipulation. Le redimensionnement opaque de Mac OS X faillit sur ces deux points, et devrait avoir été invalidé si la facilité d'utilisation est le but principal.

Mais d'un autre côté, si vous ajoutez le marketing et la possibilité de faire des démos bluffantes, peut-être que cette caractéristique s'explique mieux. Si je reconnais l'intérêt de ces choses, il faut tracer une limite quelque part. A tout le moins, Apple aurait dû ajouter une option au niveau du système pour invalider le redimensionnement opaque au profit des lignes grisées.

La cause de cette gaffe de performance n'est sans doute importante que pour les gens d'Apple qui ont à la corriger mais cela n'a pas empêché des spéculations mal venues parmi les utilisateurs de Macs. L'idée dominante actuelle est que beaucoup d'opérations de Quartz ne peuvent pas être accélérées par les cartes vidéo actuelles, qui sont adaptées à un simple transfert de pixels sur l'écran. Cette caractéristique est au moins accélérée sous OS X. Mais presque toutes les autres opérations requièrent des calculs par le CPU (et un accès mémoire pour cela) avant que les pixels à dessiner puissent être envoyés sur la carte graphique.

Ce modèle prédit au moins correctement le comportement observé, selon lequel des fenêtres avec de nombreux éléments secondaires se re-dimensionnent plus lentement que des fenêtres qui en ont peu. L'emblême d'un redimensionnement lent est la fenêtre en forme de liste du Finder, qui est enrichie par de nombreux éléments secondaires : entêtes de colonnes, lignes et cellules. En principe, chacun de ces éléments doit être calculé par votre CPU malheureux et fatigué, avant que les pixels à rendre ne puissent être envoyés à la carte graphique. Plus il y a de calculs, plus le tracé est lent.

Les affichages de seconde génération comme ceux de Mac OS 9 qui ne sont concernés que par l'affichage de pixels sur l'écran (avec un calcul occasionnel d'échelle), sont pleinement accélérés par les cartes d'affichage 2D actuelles. Une accélération complète des affichages de troisième génération comme Quartz réclame de nouveaux matériels plus puissants. On parle déjà d'utiliser des matériels 3D beaucoup plus sophistiqués sur les cartes graphiques actuelles pour booster Quartz. Cela ne signifie pas que la fenêtre va soudain devenir tri-dimensionnelle. Cela veut dire simplement que tous les calculs de composition que le CPU doit accomplir actuellement sous Mac OS X peuvent être reportés sur un GPU très puissant sur votre carte graphique 3D. Je croise les doigts.

Quartz

A côté du redimensionnement des fenêtres, la couche d'affichage de Quartz se comporte de façon admirable. Cela ne signifie pas qu'elle est aussi bien que celle de Mac OS 9, considérablement plus simple. La performance d'affichage de Mac OS 9 est incontestablement plus rapide sur un même matériel. Cela n'est pas surprenant, étant donnée la quantité de travail effectuée en comparaison avec Quartz, mais ce serait bien qu'Apple puisse réduire un peu la différence de performance.

Dans certains cas, Quartz rattrape presque la réactivité de Mac OS 9, tout en faisant beaucoup plus de travail. Le meilleur exemple est le déplacement d'une fenêtre. Sur des systèmes avec une charge légère, des fenêtres incroyablement complexes peuvent être déplacées parmi des éléments d'interface tout aussi complexes, avec à peu près la même réactivité que celle de Mac OS 9 qui trace de simples lignes. Par exemple :

figure

Fig. 2 : Un meilleur exemple d'ombrage des lettres .

Le déplacement de cette fenêtre derrière un Dock lui aussi transparent est très réactif, particulièrement si on tient compte des problèmes d'accélération graphique qui se posent, et de l'implication obligatoire du CPU décrite ci-dessus. Bien sûr, cela se fait sous une charge modérée. Avec une charge plus forte, ces douceurs visuelles empêchent l'utilisation de l'interface car elles perdent des trames en tentant de rester en phase avec les entrées de l'utilisateur.

Mais compte tenu de la performance médiocre de cette caractéristique, je pense que l'utilisation de la transparence sous Mac OS X est à l'opposé de la ligne usage/caractéristiques mentionnée précédemment. (Et puis, notez que le tracé d'une fenêtre totalement opaque est presque entièrement accéléré par le matériel. Seul, le tracé d'une ombre portée transparente derrière la fenêtre réclame l'intervention du CPU).