CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Imcompréhension sur le opération bianair

arnaud81
arnaud81
Niveau 7
03 juillet 2003 à 23:00:08

voila que j´ai un probleme de caractères speciaux maintenant ? ? :(((

Ma foi, oui, j´ai déja développé ma propre librairie VESA 3 ( mode LFB et acces par bank en 8, 15,16,24 et 32bits de couleurs ( l´enfer))et meme une librarie pour exploiter ma pauvre mémoire XMS en mode FLAT.

mais tu cites des cas tres particulier. ce sont des routines clées ( je parlais drivers tout a l´heure) dont les performances ont une énorme incidence sur le reste de l´application. Et qui ont donc un interet a être optimisées. mais ca represente quoi ? suivant les appli, ca doit etre compris entre 2 et 10pourcent du code de l´application.
( la routine de compression/décompression , librairie graphique, traitement des interruptions, acces par banque...) mais qui monopolise le CPU entre 25 et 100pourcent de ses resources. l´interet del´optimisation par un passage en assembleur peut se reveler tres interessante, mais nécessite un recodage complet si tu changes de plateforme, et une optimisation specifique pour une plateforme peut etre néfaste pour une autre ( genre AMD vs INTEL).

arnaud81
arnaud81
Niveau 7
03 juillet 2003 à 23:12:10

Enfin, tout dépend en fait de ce que tu fais. ( qui a dit temps réel dur ? )

Tu parles précalcul ? C´est une optimisation, mais dans ce cas, je le considere comme une amélioration de l´algorythme. ( tu n´acceleres pas le calcul, tu l´évites ) .

Développer sur console ? Non pas encore ( peut etre un jour lol ( je reve un peu trop la lol)) Mais l´idée que je m´en fais est que pour sortir un jeu en un temps de developpement normal ( +/-2ans) sur XBox, PS2, GameCube et PC simultanéement, doit pas y avoir 36 secrets : rien ne vaut un kit de développement acheté a cout de EEE optimisé par un compagnie tierce. Et la regle est la meme pour tout le monde ( enfin je pense), on fait d´abord marcher la chose, ensuite on optimise ce qui a reellement besoin de l´etre.

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

Bref, je suis en train de tout mélanger. Juste pour dire que l < opération binaire>n´est pas le mot magique qui va optimiser a fond un programme, et qu´un bon algorythme vaut mieux qu´un mauvais algo optimisé.

ps:pour le < j´ai rien compris au topic>, c vrai que je suis un peu a l´ouest avecle topic < optimisation>, mais c vous qui avez parlé optimisation avec les operateurs binaires :)

ps2:l´exemple qui tue

en c non optimisé if ( a== 0){ a=b*25 }
en asm traduit du dessus :
mov eax, & // cout 1 cycle
cmp eax, 1 // . .on va dire 1
jne mauvais // . .on va dire 2
mov ebx,& // 1 cyble
mult ebx, 25 // 20 cycles ( l´instruction doit etre fausse, mais faut bien 20 cycles
mov eax, ebx // 1 cycle
mauvais: //total = 26 cycles

en c optimise if ( !a){a=b*25}
mov eax, & // cout 1 cycle
jnz mauvais // . .on va dire 2
mov ebx, & // 1 cyble
mult ebx, 25 // 20 cycles sur pentium
mov eax, ebx // 1 cycle
mauvais: //total = 25 cycles

gain = 4pourcent. et encore, je ne compte pas la sauvegarde des registres, la creation /destruction de contexe de pile(je croisque ca s´appelle comme ca), qui ne font

par contre, si on avait 32 au lieu de 25, un simple décalage de 5 vers la gauche au lieu d´une multiplication aurait permis un gain de perf de 77pourcent...encore faut avoir de puissances de 2 a manipuler ( d´ou l´interet d´avoir des donnees de taille de puissances de 2).

----
ps3:je voualis juste mettre mon petit grain de sel ( ou de merde :p), maisl´explication sur l´utilisation des operations binaires est tout a fait exacte :)

jnspunk
jnspunk
Niveau 6
04 juillet 2003 à 10:05:48

ben moi je dit :
vive l´ optimisation , c pa parcekon a des gro proc kil fo se permettre de programer nimporte kommen ^^

( fo ke jarrete de programé sur TI mdr)

Passage
Passage
Niveau 10
04 juillet 2003 à 11:32:01

arnaud81

C´est pas pour dire mais il me semble que ta " traduction" en assembleur de if ( a== 0){ a=b*25 } n´est pas correte.

cmp eax,1
jne mauvais
n´est pas equivalent a if( a == 0 )

mais a if ( a ! = 1 )

Personnellement je fais le code suivant :

int a;
int b;
a = GetValue(); // pour " beurrer" les optimisation compilateur , mais en somme GetValue retourne 0 ! !!
if( a == 0)
{
---b=10;
---a=GetValue(); // idem.
}
if( ! a )
{
---b=50;
}

Surprise ! !!!!!
Tu devines pas quoi ? ???
Ben le gentil compilateur en debug remplace le test par :
cmp XXXX,0
jne etiquette

ops voila qui metire un passage du compilateur en mode " optimisé"...
Surprise 2 pour toi !
au lieu de faire ( et c´est bien legitime ) cmp on a le droit a un test reg,reg dans les 2 cas...

Mon compilateur c´est celui de billou . . . Pas une fleche quoi ( J´aime bien le Watcom pour les optimisation )

L´exemple ne tue donc pas ; )

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment