10.4.4 - Où s'arrêteront-ils ?

flotifr a dit:
Un bon ex je pense est celui des jeux, dont certains tournent infiniment moins bien sur mac que sur PC à configuration égale. Là encore on est bien dans un problème d'optimisation du code (une mauvaise gestion des ressources disponibles en sommes).
Ca pourrait être un bon exemple en théorie, mais en pratique, il est très mauvais. Si les portages de jeux PC sont bien plus lent sur Mac, ça n'a rien à voir avec une quelconque mauvaise optimisation, bien au contraire d'ailleurs, mais une impossibilité technique.
La plupart des jeux Mac d'origine PC sont souvent bien mieux optimisé parce que de nombreux bugs toujours présent dans la version PC ont été corrigé dans la version Mac, ce qui ne veut pas dire que le jeux ira plus vite, mais qu'il plantera sans doute moins !
Le portage d'un jeu PC oblige l'utilisation de librairies spécifique au Mac qui vont traduire des instructions PC à l'origine. Il y a souvent une forme d'émulation intégrée au jeu. Cette émulation bouffe de la puissance, fait perdre du temps à l'ordinateur et possède ses limites. On en arrive à un jeu qui sera forcément moins rapide sur un Mac à config équivalente. Ce qui n'empeche pas la version Mac d'être hautement optimisée pour en tirer le maximum possible.
A contrario, les jeux totalement écrit pour et sur un Mac donne une bonne idée de ce que serait les jeux PC sans cette émulation indispensable : Les jeux d'Ambrosia ou de Pangea sont des modèles du genre.
 
MarcMame a dit:
Ca pourrait être un bon exemple en théorie, mais en pratique, il est très mauvais. Si les portages de jeux PC sont bien plus lent sur Mac, ça n'a rien à voir avec une quelconque mauvaise optimisation, bien au contraire d'ailleurs, mais une impossibilité technique.
La plupart des jeux Mac d'origine PC sont souvent bien mieux optimisé parce que de nombreux bugs toujours présent dans la version PC ont été corrigé dans la version Mac, ce qui ne veut pas dire que le jeux ira plus vite, mais qu'il plantera sans doute moins !
Le portage d'un jeu PC oblige l'utilisation de librairies spécifique au Mac qui vont traduire des instructions PC à l'origine. Il y a souvent une forme d'émulation intégrée au jeu. Cette émulation bouffe de la puissance, fait perdre du temps à l'ordinateur et possède ses limites. On en arrive à un jeu qui sera forcément moins rapide sur un Mac à config équivalente. Ce qui n'empeche pas la version Mac d'être hautement optimisée pour en tirer le maximum possible.
A contrario, les jeux totalement écrit pour et sur un Mac donne une bonne idée de ce que serait les jeux PC sans cette émulation indispensable : Les jeux d'Ambrosia ou de Pangea sont des modèles du genre.

Alors, j'ai lu a plusieurs reprises ta réponse, mais j'ai le sentiment (ou bien ça dépasse mes compétences sans doute) que tu compliques un problème simple.

Je m'explique. Si le jeu porté sur mac est émulé pour traduire des instructions PC, c'est donc (je me trompe ?) qu'il n'est pas réécris entièrement pour la plateforme Apple. Ca je comprends. S'il fallait tout coder en double, on en aurait encore moins de jeux sur notre plateforme (cela dit, ça m'est assez égal, mais c'est HS) et ils seraient probablement plus cher.

Bon, ok, donc, pour moi, un logiciel émulé est loin, mais alors très loin d'être optimisé pour la plateforme en question ! Qu'il tire le meilleur parti de l'émulateur en question oui, bien sur.

D'ailleurs, tu dis bien qu'un jeu entièrement écris pour mac marche parfaitement ! Et plus haut tu nous dis qu'il y a une impossibilité technique ? :nailbiting: :confused:

Je crois qu'on ne parle pas le même langage... ???
 
flotifr a dit:
D'ailleurs, tu dis bien qu'un jeu entièrement écris pour mac marche parfaitement ! Et plus haut tu nous dis qu'il y a une impossibilité technique ? :nailbiting: :confused:

Je crois qu'on ne parle pas le même langage... ???
Je me suis sans doute mal exprimé.
J'essayais juste de démontrer que ce n'est pas parce qu'un logiciel, les jeux en particulier, montre de mauvaises performances qu'il est forcément mal optimisé. Les 2 ne sont pas du tout liés si ce n'est qu'une bonne optimisation donnera de meilleures performances qu'une mauvaise mais cela ne fonctionne que dans ce sens : de mauvaises (ou bonnes) performances ne sont pas obligatoirement le signe d'une mauvaise (ou bonne) optimisation.
Par exemple : de nombreux petits logiciels qui sont écrit "avec les pieds" peuvent sembler très rapides car ils utilisent peu de ressources processeur. Cela n'empeche pas qu'ils soient extremement mal ou pas du tout optimisés. Un bon exemple d'une telle application serait StuffIt Expander.

L'incompatibilité technique dont je parlais concernait la surcouche d'émulation qui a un impact inévitable sur les performances des jeux issues du monde PC.

Bref, rendons grâce aux porteurs de jeux sur Mac qui font, le plus souvent, un excellent travail d'optimisation pour tirer le maximum des jeux qu'ils nous proposent.
 
MarcMame a dit:
Je me suis sans doute mal exprimé.
J'essayais juste de démontrer que ce n'est pas parce qu'un logiciel, les jeux en particulier, montre de mauvaises performances qu'il est forcément mal optimisé. Les 2 ne sont pas du tout liés si ce n'est qu'une bonne optimisation donnera de meilleures performances qu'une mauvaise mais cela ne fonctionne que dans ce sens : de mauvaises (ou bonnes) performances ne sont pas obligatoirement le signe d'une mauvaise (ou bonne) optimisation.
Par exemple : de nombreux petits logiciels qui sont écrit "avec les pieds" peuvent sembler très rapides car ils utilisent peu de ressources processeur. Cela n'empeche pas qu'ils soient extremement mal ou pas du tout optimisés. Un bon exemple d'une telle application serait StuffIt Expander.

L'incompatibilité technique dont je parlais concernait la surcouche d'émulation qui a un impact inévitable sur les performances des jeux issues du monde PC.

Bref, rendons grâce aux porteurs de jeux sur Mac qui font, le plus souvent, un excellent travail d'optimisation pour tirer le maximum des jeux qu'ils nous proposent.

D'accord, je pense que j'avais pas compris ce que tu voulais dire. Je ne suis pas sur d'ailleurs de bien comprendre encore, mais il semble qu'en fait que tu veuilles dire que la performance d'une application n'est pas liée à son optimisation. N'étant pas programmeur, je n'emploie probablement pas correctement le langage informatique.

Ceci dit, peux-tu m'éclairer sur le pourquoi du manque de réactivité d'une application ? Est-ce que l'on pourrait dire, par ex, que cette application tire le meilleur parti des ressources (logicielles) à sa disposition (je sais pas, moi, les librairies j'imagine), mais que ces ressources ne sont pas nécessairement adaptées et donc brident l'application en question ?

Dis-moi que c'est un truc dans le genre, sinon j'suis tout perdu là ... :nailbiting:
 
10.4.4, c'est pour bientôt d'après Think Secret...:cool:
 
flotifr a dit:
Ceci dit, peux-tu m'éclairer sur le pourquoi du manque de réactivité d'une application ? Est-ce que l'on pourrait dire, par ex, que cette application tire le meilleur parti des ressources (logicielles) à sa disposition (je sais pas, moi, les librairies j'imagine), mais que ces ressources ne sont pas nécessairement adaptées et donc brident l'application en question ?

Dis-moi que c'est un truc dans le genre, sinon j'suis tout perdu là ... :nailbiting:
Tout à fait.
Un os déterminé moderne va fournir des bibliothèques de librairies que vont exploiter les développeurs.
Le plus souvent ce sont des jeux d'instructions machine propres au proc utilisé, par exemple l'AltiVec des PPC.
Or sur mactel, les apps, et plus particulièrement les jeux, utilisent des bibliothèques spécifiques optimisées pour les procs Intel.
Il faut donc "interprêter" [transcoder] ces librairies.

C'est aussi le défi du "portage" de Mac Os X sur Intel.
 
flotifr a dit:
Ceci dit, peux-tu m'éclairer sur le pourquoi du manque de réactivité d'une application ? Est-ce que l'on pourrait dire, par ex, que cette application tire le meilleur parti des ressources (logicielles) à sa disposition (je sais pas, moi, les librairies j'imagine), mais que ces ressources ne sont pas nécessairement adaptées et donc brident l'application en question ?
Imaginons que les PC parlent Anglais et que les Mac parlent Français.
Pour porter une application PC sur un Mac, on a besoin d'un traducteur Anglais-->Français (une librairie).
Ce traducteur va intervenir en permanence pendant le déroulement de l'application.
La traduction simultanée fait perdre du temps, même si le traducteur en question est le champion du monde (extremement optimisé). Ce temps perdu, aussi minime soit-il, n'existe pas sur la version PC puisqu'ils parlent directement Anglais.
C'est pour cette raison que, quoiqu'il arrive et même si le portage est presque parfait, c'est à dire optimisé à fond, on ne pourra que se rapprocher de la vitesse de la version PC, sans jamais la dépasser.

Ca, c'est pour les jeux et les applications qui ont été écrites pour les PC à l'origine et porté sur le Mac.

----------------------

Concernant l'optimisation de logiciels purement Mac ou purement PC (et donc sans portage / traduction) le problème est différent. Il faut d'abord faire attention à ne pas faire d'amalgame :

On a tendance à croire que parce qu'une application rame sur son ordi, c'est qu'elle est forcément mal optimisée. Ce n'est pas forcément vrai.
De même, ce n'est pas parce qu'une application semble être rapide sur son ordi qu'elle est bien optimisée. Ce n'est pas forcément vrai non plus.
Il faut bien comprendre que : plus l'ordinateur est rapide, plus l'application le sera aussi. Pareil si l'ordi est lent.
Ce n'est donc pas parce que l'ordinateur est lent qu'on peut en déduire que l'application est mal optimisée.

Par contre, si on a un ordinateur rapide et qu'une application est lente, on peut soupçonner un défaut d'optimisation, mais en aucun cas l'affirmer.

Par exemple : Mac OS X 10.4 tourne comme une horloge sur les G5 et rame comme une bête sur un G3 de moins de 500MHz. Alors, optimisée ou pas MacOS X ?
Optimisé bien sur, mais il parrait évident que plus OS X évolue, plus on y rajoute des fonctionnalitées graphiques et sonores de plus en plus complexes qui nécessitent un pouvoir de calcul toujours plus élevé.
Les Macs des anciennes génération ne peuvent plus suivre, ni sur la charge processeur, ni sur la charge graphique. Une optimisation spécifique est quand même réalisée pour ces machines via la désactivation de certains effets et l'absence de support de l'Altivec.
Dans ce cas précis, ce n'est donc pas parce que MacOS X rame sur une machine donnée, qu'il n'est pas optimisé. On atteint juste les limites de la machines, c'est tout.
De même, le fait que MacOS X tourne comme une horloge sur un gros G5 ne veut pas dire qu'il n'y a pas de place pour plus d'optimisation, et ce même si ce n'est pas flagrant pour l'utilisateur.

Comme exemple basique, une application mal optimisée serait une application qui ne prendrait pas en charge les multi-processeurs ou l'Altivec des G4.

Souvent, ce sont les applications lourdes qui sont plutot bien optimisées et les applications "lights" qui ne le sont pas.
Si une appli comme FCP ou Photoshop n'était pas hautement optimisée, les Macs, même haut de gamme seraient en permanence à genoux devant la moindre tache à effectuer.

Les applis lights n'ont pas ce problème. Même écrit avec les pieds, elles sont capable de tourner convenablement sur les machines d'aujourd'hui car elles ne necessitent pas d'effectuer des taches complexes. Les développeurs ne se font donc pas chier à l'optimiser, ce qui est quand même assez dommageable.

Si une appli "light" utilise 50% des ressources processeur sans être optimisée, on peut imaginer tomber à 20% des ressources si elle était optimisée. Dans les 2 cas, elle ne tournerait pas forcément plus vite, toujours à 100%, mais on comprend mieux que si il reste 50% ou 80% des ressources processeurs disponible, l'impact sur les autres taches effectuées simultanément par d'autres applications n'est pas du tout le même !

Bref, une appli optimisée ne permet pas forcément d'aller plus vite mais également d'en faire plus à la fois.
 
MarcMame a dit:
Imaginons que les PC parlent Anglais et que les Mac parlent Français.
Pour porter une application PC sur un Mac, on a besoin d'un traducteur Anglais-->Français (une librairie).
Ce traducteur va intervenir en permanence pendant le déroulement de l'application.
La traduction simultanée fait perdre du temps, même si le traducteur en question est le champion du monde (extremement optimisé). Ce temps perdu, aussi minime soit-il, n'existe pas sur la version PC puisqu'ils parlent directement Anglais.
C'est pour cette raison que, quoiqu'il arrive et même si le portage est presque parfait, c'est à dire optimisé à fond, on ne pourra que se rapprocher de la vitesse de la version PC, sans jamais la dépasser.

Ca, c'est pour les jeux et les applications qui ont été écrites pour les PC à l'origine et porté sur le Mac.

----------------------

Concernant l'optimisation de logiciels purement Mac ou purement PC (et donc sans portage / traduction) le problème est différent. Il faut d'abord faire attention à ne pas faire d'amalgame :

On a tendance à croire que parce qu'une application rame sur son ordi, c'est qu'elle est forcément mal optimisée. Ce n'est pas forcément vrai.
De même, ce n'est pas parce qu'une application semble être rapide sur son ordi qu'elle est bien optimisée. Ce n'est pas forcément vrai non plus.
Il faut bien comprendre que : plus l'ordinateur est rapide, plus l'application le sera aussi. Pareil si l'ordi est lent.
Ce n'est donc pas parce que l'ordinateur est lent qu'on peut en déduire que l'application est mal optimisée.

Par contre, si on a un ordinateur rapide et qu'une application est lente, on peut soupçonner un défaut d'optimisation, mais en aucun cas l'affirmer.

Par exemple : Mac OS X 10.4 tourne comme une horloge sur les G5 et rame comme une bête sur un G3 de moins de 500MHz. Alors, optimisée ou pas MacOS X ?
Optimisé bien sur, mais il parrait évident que plus OS X évolue, plus on y rajoute des fonctionnalitées graphiques et sonores de plus en plus complexes qui nécessitent un pouvoir de calcul toujours plus élevé.
Les Macs des anciennes génération ne peuvent plus suivre, ni sur la charge processeur, ni sur la charge graphique. Une optimisation spécifique est quand même réalisée pour ces machines via la désactivation de certains effets et l'absence de support de l'Altivec.
Dans ce cas précis, ce n'est donc pas parce que MacOS X rame sur une machine donnée, qu'il n'est pas optimisé. On atteint juste les limites de la machines, c'est tout.
De même, le fait que MacOS X tourne comme une horloge sur un gros G5 ne veut pas dire qu'il n'y a pas de place pour plus d'optimisation, et ce même si ce n'est pas flagrant pour l'utilisateur.

Comme exemple basique, une application mal optimisée serait une application qui ne prendrait pas en charge les multi-processeurs ou l'Altivec des G4.

Souvent, ce sont les applications lourdes qui sont plutot bien optimisées et les applications "lights" qui ne le sont pas.
Si une appli comme FCP ou Photoshop n'était pas hautement optimisée, les Macs, même haut de gamme seraient en permanence à genoux devant la moindre tache à effectuer.

Les applis lights n'ont pas ce problème. Même écrit avec les pieds, elles sont capable de tourner convenablement sur les machines d'aujourd'hui car elles ne necessitent pas d'effectuer des taches complexes. Les développeurs ne se font donc pas chier à l'optimiser, ce qui est quand même assez dommageable.

Si une appli "light" utilise 50% des ressources processeur sans être optimisée, on peut imaginer tomber à 20% des ressources si elle était optimisée. Dans les 2 cas, elle ne tournerait pas forcément plus vite, toujours à 100%, mais on comprend mieux que si il reste 50% ou 80% des ressources processeurs disponible, l'impact sur les autres taches effectuées simultanément par d'autres applications n'est pas du tout le même !

Bref, une appli optimisée ne permet pas forcément d'aller plus vite mais également d'en faire plus à la fois.

Là, je pense que tu as répondu à la question de façon exhaustive ! ;)

Merci d'y avoir consacré de ton temps ! :)
 
flotifr a dit:
D'abord, correction, l'OS c'est le système. Je pense que tu voulais dire "Le finder étant une application, [...]" ;) - edit : tu parlais peut-être du matériel en fait en citant le système.

Ensuite, ce que tu dis n'est que partiellement vrai. Effectivement, il y aura bien une influence de la configuration qui fera tourner le système sur sa réactivité, mais prenons l'exemple de Pages, même sur les plus grosses configurations le scrolling est lent et saccadé. Il s'agit donc là purement d'un problème d'optimisation. Un bon ex je pense est celui des jeux, dont certains tournent infiniment moins bien sur mac que sur PC à configuration égale. Là encore on est bien dans un problème d'optimisation du code (une mauvaise gestion des ressources disponibles en sommes).

Par contre, on peut voir une application"x" qui est lente et peu réactive dans son ergonomie mais qui traite l'information (calculs de filtres ou autre) de façon extrèmement rapide. Donc, la performance et la réactivité, à mon sens son très éloignées l'une de l'autre (quand bien même les deux nécessitent une optimisation pour être efficaces).

Je parlerai donc de performance pour l'applicatif (la tâche à exécuter) et de réactivité pour l'interface (ce qui permet de donner les ordres de façon simple).
Il a pas totalement tort, l'OS est bien un logiciel.
Un logiciel complexe qui sera en effet plus ou moins efficace selon la configuration qui le fait tourner, même si ça se voit pas forcément à la vitesse d'ouverture d'une fenêtre.:p
 
power600 a dit:
Il a pas totalement tort, l'OS est bien un logiciel.
Non, on ne peut pas considerer l'OS comme un logiciel.
Un logiciel est capable d'effectuer des taches et l'OS en est tout à fait incapable.
L'OS est un moteur qui permet de faire tourner des logiciels écrits pour lui.
La confusion vient du fait qu'aucun OS n'est livré sans logiciels.
 
MarcMame a dit:
La confusion vient du fait qu'aucun OS n'est livré sans logiciels.

heu si ... des micro-os spécialisé temps-réel...

UN OS c'est un amas de logiciels (si l'on considere qu'un noyau est un logiciel, que des bibliotheques sont des logiciels, qu'un moteur graphique est un logiciel).
 
cretinoïde a dit:
(si l'on considere qu'un noyau est un logiciel, que des bibliotheques sont des logiciels, qu'un moteur graphique est un logiciel).
Oui, évidemment, parti de ses suppositions on peut réécrire le dictionnaire.... :rolleyes:
 
MarcMame a dit:
Non, on ne peut pas considerer l'OS comme un logiciel.
Un logiciel est capable d'effectuer des taches et l'OS en est tout à fait incapable.
L'OS est un moteur qui permet de faire tourner des logiciels écrits pour lui.
La confusion vient du fait qu'aucun OS n'est livré sans logiciels.
Faudrait retrouver les graphiques qui avaient été fait à la sortie de Mac Os X mais l'interface graphique [Aqua] et le Finder sont bien des tâches :rateau:

Mais, avec unix, l'amalgame est aisé ;)
 
golf a dit:
Faudrait retrouver les graphiques qui avaient été fait à la sortie de Mac Os X mais l'interface graphique [Aqua] et le Finder sont bien des tâches :rateau:
Le finder est bien une application, il suffit de de faire un Pomme+alt+esc pour s'en rendre compte. ;) Le débat de savoir si elle fait partie de l'OS ou non est un autre problème.
En ce qui me concerne, je persiste à croire qu'elle est livrée avec l'OS, sans en faire parti.
 
MarcMame a dit:
Non, on ne peut pas considerer l'OS comme un logiciel.
Un logiciel est capable d'effectuer des taches et l'OS en est tout à fait incapable.
L'OS est un moteur qui permet de faire tourner des logiciels écrits pour lui.
La confusion vient du fait qu'aucun OS n'est livré sans logiciels.
En fait si, un OS est bien un logiciel.
Sa tâche consiste à gérer l'ordinateur pour toi, en premier lieu il lance les aplis quand tu lui le demandes. Il t'affiche un bureau, des icones et menus qui te permettent de lui réclamer le démarrage d'une ou plusieurs applis, des installations ou désinstallations, mettre des données qui apparaissent comme étant rangées dans des dossiers, etc.
Il a aussi entre autre rôle de gérer la répartition de la puissance de calcul entre les différentes applis lancées, leur allouer de la mémoire, chose que Mac OS n'était pas foutu de faire avant l'arrivée de OS X, tu devais le faire toi-même, beuârk. Maintenant ton OS s'en charge à ta place et il le fait très bien.
Je fais court hein, décrire tout ce que fait l'OS serait trop long pis je saurais pas tout dire :rateau: :D

Le firmware de ton Mac (et du mien aussi :D) et le BIOS de mon PC sont aussi des logiciels. :p
 
MarcMame a dit:
Le finder est bien une application, il suffit de de faire un Pomme+alt+esc pour s'en rendre compte. ;) Le débat de savoir si elle fait partie de l'OS ou non est un autre problème.
En ce qui me concerne, je persiste à croire qu'elle est livrée avec l'OS, sans en faire parti.

ben si tu fais un class-dump dessus tu vas vite t'apercevoir que le finder est indéniablement une partie de l'OS dans le sens ou il exploite à lui tout seul l'ensemble ou presque des frameworks d'apple et qu'il permet la manipulation de nombre de fonctions accessibles aux users. ... D'ailleurs je ne vois pas ou tu veux en venir. Un OS est un ensemble de logiciels au sens premier du terme. Mach est un logiciel de la catégorie des micro-noyaux, Apache est un logiciel serveur de pages web, etc, etc, etc.
 
On devrait plutot parler d'objet....


Eloignez tous les objets pointus !!
 
power600 a dit:
En fait si, un OS est bien un logiciel.
Sa tâche consiste à gérer l'ordinateur pour toi, en premier lieu il lance les aplis quand tu lui le demandes. Il t'affiche un bureau, des icones et menus qui te permettent de lui réclamer le démarrage d'une ou plusieurs applis, des installations ou désinstallations, mettre des données qui apparaissent comme étant rangées dans des dossiers, etc.
Quitte le finder et tu n'auras plus rien de tout ça et un OS (théoriquement) toujours fonctionnel.

Le firmware de ton Mac (et du mien aussi :D) et le BIOS de mon PC sont aussi des logiciels. :p
Le BIOS est bien plus que cela, c'est un ordinateur à part entière.
 
C'est amusant de voir comment on peut se tirer les cheveux sur les définitions ! :D

En même temps, on s'éloigne du sujet, qui du reste n'intéressait personne (mais c'est bien pour ça que je l'avais lancé :D )

Par contre :mad: Qu'est-ce que je vois là ???:mad: Y'a un modo qui s'est permis de changer mon titre !!!!!!!!!!:eek:

Non, non, non, non, non ! C'était très bien comme que j'l'avais écrivé ! Comme si que j'parle pas bien ??? :confused:

Si on nous interdit l'amusance maintenant.... :(
 
MarcMame a dit:
Oui, évidemment, parti de ses suppositions on peut réécrire le dictionnaire.... :rolleyes:

Eh bien, il faut de l'aplomb pour défendre une telle ânerie avec autant de conviction :eek:

Un OS est un logiciel, codé à main d'homme et exécuté sur processeur. Sa fonction par rapport au matériel et aux autres logiciels ne change rien à l'affaire. C'est un logiciel, aussi vrai que le processeur et la mémoire sont du matériel. Et c'est d'ailleurs un logiciel simplement car ce n'est pas un matériel.