Codewarrior 10 - La version ultime.

Didier Guillion a dit:
Oui, en effet il vaut mieux savoir lire un minimum l'assembleur. Mais pour debogger aussi de toute manière.

L'ordre de grandeur entre non optimisé et optimisé est assez important, mais cela depends de l'application. Une application basée sur une interface va de toute facon passer 90% du temps dans le systeme donc tu ne verra pas de difference. Mais si tu ecrit une application avec de gros calcul, commme un encodeur/decodeur MPEG par exemple, avec des fonctions qui passent tres souvent et prennent 80% de ton temps CPU, cela vaut le coup de gagner 10-15 % dessus. Et si tu ne gagne pas assez, il vaut mieux la reecrire en assembleur.

Pour l'alignement des données, je ne suis pas tres callé en microprocesseur, mais si j'ai bien compris, il y a un cache pour les instructions, l'agencement des instructions en mémoire peut perturber le fonctionnement de ce cache.
De meme certains processeurs aiment tomber sur des mulitples de 32, 16 ou 8 octets (peut etre aussi le cache).
Ce que te signale d'ailleurs Shark.

Cordialement

Pour information, et de ma propre expérience lors du développement des routines de rasterisations de sprites :

- Code brut compilé avec Codewarior optimisations compilo à fond = Coef 1

- Désassemblage et "cheating" des instruction en C (manière d'écrire, ordre, etc..) = coef 1,2

- Réécriture en Assembleur PPC, avec obsession de l'optimisation maximal de l'usage des registres du PPC, et du chevauchement des instructions en vue d'une utilisation maximal des 2 ALU = Coef 1,4


Bref, en gros là ou cela vaut vraiment le coup de se fatiguer, en faisant de la haute couture , j'ai gagné 40% de perfs.

Maintenant j'ai pas testé sous Xcode, avec GCC, mais j'image que cela sera comme sous Cw si pas plus mauvais.
 
Bonsoir,
Un des problemes de la programmation Cocoa/Obj-C est qu'il n'existe pas de documentation expliquant la structure interne des Nibs (ou si je me trompe, merci de donner le lien) comme s'était le cas pour les ressources Mac OS anterieure à X. Personnellement, j'hésiterait a baser une appli professionnelle, destinée à durer, sur un format de fichier non publié.
Le passage obligé est donc Interface Builder. A mon gout, il est plutot complexe et plutot fragile.

Cordialement

Il y a du nouveau là dessus. Depuis très récemment, le projet GNUStep est capable de générer et de lire des fichiers Nib fonctionnant sur Mac OS X.

http://heronsperch.blogspot.com/2006/08/nib-encoding-now-working-in-gnustep.html

La question est: comment ont ils fait si rien est documenté ?
 
Il y a du nouveau là dessus. Depuis très récemment, le projet GNUStep est capable de générer et de lire des fichiers Nib fonctionnant sur Mac OS X.

http://heronsperch.blogspot.com/2006/08/nib-encoding-now-working-in-gnustep.html

La question est: comment ont ils fait si rien est documenté ?


Tu cree un NIB vide, tu dumpe le contenu, tu ajoute un objet au NIB, tu regarde ce qui a changé, tu en deduit une portion de la structure du fichier et tu recommence pour tous les objets possibles. Bien sur, si le format des NIBS change tu recommence a zero...

Et en plus, ils font le contraire, convertir un format ouvert vers le format fermé des Nibs, ce qui est plus facile mais reste néanmmoins remarquable.

Autre solution, ils ont simplement fait une conversion de leur format GNU en texte et le traite par le convertisseur de texte en Nib.

Cordialement
 
Pour l'alignement des données, je ne suis pas tres callé en microprocesseur, mais si j'ai bien compris, il y a un cache pour les instructions, l'agencement des instructions en mémoire peut perturber le fonctionnement de ce cache.

Non, Didier, c'est pas une histoire de cache. Imagine que tu utilises un processeur dont le bus de données est de 32 bits (tous les PowerPC jusqu'au G4).

Bloc de code:
                     Aligné           Non aligné
Adresse 0       A
Adresse 1       B                         A 
Adresse 2       C                         B
Adresse 3       D                         C
Adresse 4                                 D
Tu peux accéder directement à la donnée alignée, puisqu'elle se situe sur une adresse multiple de 4 octets (= 32 bits). Tu peux lire la donnée avec une seule instruction.

Pour la donnée non alignée, par contre, il te faudra 3 instructions:
Une pour l'octet A
Une pour le mot BC
Une pour l'octet D

Conséquence: c'est plus lent. Et comme on dispose de plein de mémoire, mieux vaut aligner.
 
C'est amusant, ce que tu dit est a la fois tres interessant et étonnamment agressif. Ce n'est pas la guerre bon sang, inutile de truffer tes messages d'allusions personnelles. Personne ne sait tout sur tous les sujets et j'adore apprendre des choses nouvelles.

Dans mes Nibs, j'ai plusieurs fichiers, et tu as raison, "Classes.nib", "Info.nib" semblent etre des structures XML. Mais si je regarde les fichiers principaux, "objects.nib" "keyedobjects.nib" pour moi c'est du binaire opaque. Tu as un outil particulier pour les "dumper" ?

Cordialement

les NIB enfin les resources les composants sont bien des structures xml

"objects.nib" "keyedobjects.nib" sont des "binary plist" (unpackable)
ca n'est pas du tout fermé c'est juste pas documenté
-> defaults et CF-Lite src si tu veux observer :zen:

duplicate un "keyedobjects.nib" et renomme en "keyedobjects.plist" puis ouvre le sous "Property List Editor"

:zen:
 
les NIB enfin les resources les composants sont bien des structures xml

"objects.nib" "keyedobjects.nib" sont des "binary plist" (unpackable)
ca n'est pas du tout fermé c'est juste pas documenté
-> defaults et CF-Lite src si tu veux observer :zen:

duplicate un "keyedobjects.nib" et renomme en "keyedobjects.plist" puis ouvre le sous "Property List Editor"

:zen:

Je prends un "objects.nib", je le dumpe en hexa, et c'est bien du binaire. Tu fait comment pour convertir ce binaire en texte XML ?

Cordialement
 
Je prends un "objects.nib", je le dumpe en hexa, et c'est bien du binaire. Tu fait comment pour convertir ce binaire en texte XML ?

Cordialement

Binary data :

< [hexadecimal codes in ASCII] >

en faite plus compliqu&#233; (unicode)
(tu as un header bien-sur qui specifie le fichier )


10.4/CF-368/Parsing.subproj/

ne fait pas attention c'est un premier rangement des sources
il n'y pas a encore le filtre versionning (pas fini la DB)
src.gnu-darwin

mais bon dans ce sujet il ya un peu trois sujets en m^me temps :)
 
j'ai pas test&#233; sous Xcode, avec GCC, mais j'image que cela sera comme sous Cw si pas plus mauvais.

GCC est un bon compiler mais si tu fais n'importe quoi avec tu obtients des r&#233;sultats mauvais
GCC est une collection et beaucoup de ses utilitaires ne sont pas utilis&#233;s

je vois souvant des projects qui ne font pas la diff&#233;rence entre preprocessed et non-preprocessed
deplus il ya beaucoup d'optimisation suivant les platformes et elles sont peu utilis&#233;es

sans parler des nombreuses options Apple Only

GCC est beaucoup moins "assist&#233;" donc il faut un peu de rigueur
ce qui fait malheureusement defaut &#224; beaucoup de dev

je suis affol&#233; par le flou artistique des formations (grandes &#233;coles / facult&#233;s / &#233;coles d'ing&#233;gnieur)
des + jeunes en France , souvant les gens sortant d'&#233;cole en contrat de qualification ont une bien meilleur
approche et un niveau de tr&#232;s loin sup&#233;rieur et chez les autodidactes too

[RECADRAGE]

et j'aimerais bien aussi ici que les petits ***s se calment avec Didier

Didier ds la profession , c'est ce qu'on appel un master
+ de 15 ans d'exp&#233;rience en C/CPP de gros softwares &#224; son actif ...

vous pouvez donc plaisanter avec lui mais de la
&#224; le prendre pour un imb&#233;cile il ya des limites !!!!!!!!!!!!!!!!


:zen:
 
[RECADRAGE]

et j'aimerais bien aussi ici que les petits ***s se calment avec Didier

Didier ds la profession , c'est ce qu'on appel un master
+ de 15 ans d'expérience en C/CPP de gros softwares à son actif ...

vous pouvez donc plaisanter avec lui mais de la
à le prendre pour un imbécile il ya des limites !!!!!!!!!!!!!!!!
:zen:

Tout à fait d'accord Tatouille. Je voulais dire que Didier a le mérite de programmer en indépendant. Ca demande du courage et une relation suivie avec le client. Je ne suis pas forcément d'accord pour ce qui est de son entêtement face à Cocoa, mais il a des contraintes que n'ont pas les projets qui ont été cités, à savoir la compatibilité de ses applis avec d'anciennes machines, et la pérénité du code pour les prochaines années.

C'est autre chose que bidouiller un truc sur un coin de table que personne d'autre n'utilisera jamais. Quand vous aurez fait un boulot comparable au sien, vous pourrez donner votre avis, mais je pense que d'ici là, vous aurez beaucoup gagné en sagesse.:zen:
 
  • J’aime
Réactions: tantoillane
je confirme, tardivement mais je confirme, didier et son frere sont des tronches, ils respirent comme il cree du code, c'est hallucinant! pour creer du code pour un Mo5, Atari, Amstrad il faut etre un bon et un vrai bon :zen: c'est pas du java ou une quelconque POO, ce genre d'experience sa forme! il n'y a que les meilleurs qui en sont capable. C'est meme des fois presque rageant de voir autant de talent ;). Des virtuoses, DES TRONCHES!!! je vous dit. Que je meurent de suite si je ment.

Je les connais depuis 20 ans maintenant et c'est une grande chance pour moi et pour le monde du Mac en general.
Soyez content de les avoir sur votre forum, des pointures pareilles la majorite prefere meme pas perdre leur temps a discute avec des personnes qui s'aparente plus a des supporter qu'a de vrais programmeurs pro ou programmeurs 'amateur', le temps c'est de l'argent surtout pour un professionnel.

En plus de ca ils ont des qualites humaine; pedagogue, patient (on la vue dans ce forum!), gentil, abordable et surtout pas pedant ou pretentieux pour un sous, Ah non vraiment pas je vous assure.

Les premiers temps que je les connus, moi aussi c'etait bla bla bla, j'etait jeune, adolescent et mes bla bla bla s'apparente plus a de l'enthousiasme et une passion pas bien maitriser qu'autre chose et ils sont ce genre de personne qui disent rien, ou pas grand chose, pas du genre a t'ecraser verbalement comme une merde, parceque les armes ils les ont, heureusement je suis observateur, et j'ai vite compris a qui j'avais a faire.

Faut imaginer, moi, des grandes phrases toutes faites prise dans des journaux, tu extrapole le peu de chose que tu connais, ou souhaite connaitre et vas y, bla, bla ,bla dans le fond tu ne l'a meme pas mis en pratique, et eux des questions pointues, pratiques, bien ciblees, argumentees et la, si t'es pas con tu freine... et puis tu 'approfondie', tu 'creuse' pour savoir a qui tu as a faire.. et tu decouvre..
Sur le moment c'est un grand coups au moral :D, ensuite c'est la honte qui prevaut, puis tu te souviens de toutes les conneries que tu as pu dire devant eux, tu as vraiment l'impresion de pedaler a fond dans le vide :rolleyes:.

Pas parceque je me croyais plus fort que tout le monde mais plutot, par le gouffre entre leur travail, leur experience, leur savoir et le mien, et la tu te dis "il m'en rester de la route a faire...." :nailbiting: cela m'a apris l'humilite, cela recadre les choses, c'est bien :), j'avais compris de mon chef la 'lecon', par la pratique :D.


Par la suite et bien plus tard, je vous dit pas combien de fois ils m'ont aider quand il a fallut que j'aprenne le C et la Rom du Mac, en meme temps, quand j'avais pas assez de recul, pour trouver mes erreurs, erreurs repeter depuis le debut d'un projet... eux toujours patient pourtant du travail ils en ont, la boutique il faut qu'elle tourne, moi je n'en vie pas, eux si. Meme la, toujours present. Ils mon vraiment fait gagner du temps. C'est un plaisir de discuter profession avec eux. J'en est connut des IUT, des ingenieurs informaticiens et pourtant... est en informatique tant que tu n'as pas fait! tu ne sais pas a 100&#37; c'est pas la theorie qui nourrit son homme (intellectuellement et financierement).


Je suis pas maitre a faire des compliments, mais quand il faut, il faut. Et puis tout le monde n'a pas la chance de les connaitres, alors je me suis permis de vous donner mon avis.

Sur ce, je vous souhaite une bonne nuit, une bonne semaine, bientot les vacances!:up:, et desoles pour l'orthographe.

Cordialement.