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

_.·´¯`·-»Topic Bla-Bla 3.0«-·´¯`·._

PocoIo
PocoIo
Niveau 10
12 mars 2013 à 23:24:19

C'est de la prog qui est tout sauf celle de Celeniak. :oui:

PocoIo
PocoIo
Niveau 10
12 mars 2013 à 23:27:56

Vas-y, dis-nous comment écrire du code optimisé bien comme il faut. :oui:

tuXShadow
tuXShadow
Niveau 11
12 mars 2013 à 23:29:47

Natto > Camembert :hap:

tuXShadow
tuXShadow
Niveau 11
12 mars 2013 à 23:33:19

https://image.noelshack.com/fichiers/2013/11/1363127559-gw005.jpg

WTF ? Ma superbe fapable magicienne vient de se faire transformer en cochon par un carpeau géant pour aller chercher des truffes :peur:

tuXShadow
tuXShadow
Niveau 11
12 mars 2013 à 23:35:05

Code un losange en C :rire: :rire: :rire: :rire: :rire:

PocoIo
PocoIo
Niveau 10
12 mars 2013 à 23:37:27

" ça dépend, il faut un exercice concret "

Pas forcément, il y a des mesures que l'on peut prendre pour n'importe quel code. :oui:

PocoIo
PocoIo
Niveau 10
12 mars 2013 à 23:37:52

Et des principes mon cher, des principes. :oui:

PocoIo
PocoIo
Niveau 10
12 mars 2013 à 23:39:32

Que dalle, tu cherches juste des excuses. :oui:

PocoIo
PocoIo
Niveau 10
12 mars 2013 à 23:43:52

" Eh bien, j'essaie de ne pas faire de cache miss, via l'usage de tableaux statiques de taille raisonnable "

A noter que les cache miss c'est aussi valable pour le code lui-même vu que les instructions du programme sont aussi mises en cache, genre appeler une fonction dont l'adresse est très éloignée de l'endroit où l'on est risque de faire un cache miss. :oui:

tuXShadow
tuXShadow
Niveau 11
12 mars 2013 à 23:48:12

L'un de mes exercice de tp en C consistait à afficher la courbe de sin en texte dans un terminal.
Fait-le. :oui:

PocoIo
PocoIo
Niveau 10
12 mars 2013 à 23:52:29

" Raison pour laquelle j'essaie de limiter les appels de fonction ou de les coller en inline quand elles sont simples :oui: "

C'est aussi l'une des raisons pour lesquelles les fonctions inline sont supposées être courtes, autrement on risque de se retrouver avec une fonction énorme (vu que le code est carrément recopié) et des cache miss aussi. :oui:

On ne sait pas trop comment le compilateur va générer le code de toute façon mais on sait au moins que le code d'un unique fichier cpp sera contigu en mémoire, donc appeler deux fonctions pas très grandes écrites côte à côte dans le fichier peut éviter un cache miss également.

Après les compilateurs d'aujourd'hui se chargent d'optimiser le code eux-même comme tu le dis, notamment sous Visual Studio, même si tu marque une fonction comme inline, il va pas forcément le faire, il va juger si ça vaut le coup et seulement si il pense que ça vaut le coup, il le fera, autrement on peut utiliser __forceinline (spécifique à Visual Studio) pour le forcer à le faire.

Les compilos font d'autre optimisation à la con, genre si tu divise un nombre pas une puissance de deux, il le remarquera et utilisera automatiquement une instruction de décalage de bits plutôt que l'instruction div ou idiv de l'assembleur.

PocoIo
PocoIo
Niveau 10
12 mars 2013 à 23:58:23

" Ouais, je connaissais le coups du décalage de bit :oui: "

Tout le monde le connait, mais il y a justement plein de gens qui le font explicitement et fièrement sans avoir que ce sera fait de toute façon.

PocoIo
PocoIo
Niveau 10
12 mars 2013 à 23:59:49

Bon après tous les compilos sont différents mais avec le désassemblage on peut voir les optimisations produites par le compilateur.

PocoIo
PocoIo
Niveau 10
13 mars 2013 à 00:02:35

" Mais ça pose problème de le faire, genre niveau portabilité? "

Non, y'a pas de raison.

" Car sinon, autant le faire a la main comme ça peu importe le compilo, on a la paix. "

Oui, c'est pas faux.

Sinon pour les optimisations niveau espace y'a aussi le truc des bits bouche trou dans les struct et les class. :oui:

PocoIo
PocoIo
Niveau 10
13 mars 2013 à 00:04:13

" Ouais, enfin bon là c'est assez bancal selon l'architecture visée :peur: "

C'est à dire?

caelacanthe
caelacanthe
Niveau 10
13 mars 2013 à 00:04:37

"Oui, c'est pas faux. "

:d) Zt si on tombe sur un processeur qui fait des performances dégueul@sses sur le décalage de bits? Ca existe. Sur le forum Programmation, ils m'ont conseillé de plutôt faire confiance au compilateur. :nah:

PocoIo
PocoIo
Niveau 10
13 mars 2013 à 00:14:30

" On parle bien des bits d'alignement "

Ouais. :oui:

" l'efficacité, c'est vraiment pour coller a une architecture particulière, non? "

Oui mais je parle juste du fait qu'en mettant les attributs de taille plus petite avant ceux de taille plus grande, genre:

struct A
{
char c;
int i;
}

On aura forcément trois bits de padding sur x86 (plus ou moins selon la taille des types sur le compilo), alors qu'on peut éviter ça en rangeant les attributs du plus grand au plus petit, mais bon on aura pas toujours envie de le faire, on préfère souvent ranger les attributs de façon "logique".

Dans Visual Studio il y a aussi une instruction de pré-processeur pour forcer le compilateur à ne mettre aucun bit de padding (#pragma pack(1)) même si il devrait y en avoir , sauf que là évidemment on perd l'alignement des données en mémoire et ça devient plus long à lire pour le processeur, ça peut même faire planter certaines machines.

PocoIo
PocoIo
Niveau 10
13 mars 2013 à 00:42:19

L'autre jour pendant que je jouais à TF2, il y a un gars auquel je n'ai jamais parlé mais que je voyais souvent sur les serveurs où je joue qui m'a...ajouté en ami. :snif:

Dorénavant j'essaierai d'être gentil avec tout le monde et me faire plein d'amis. :oui:

Glorb
Glorb
Niveau 4
13 mars 2013 à 06:54:17

Je crois que t aura pas de reponse :non:

tuXShadow
tuXShadow
Niveau 11
13 mars 2013 à 10:44:29

"Deux vecteurs sont normaux si leur produit scalaire est nul. C'est à dire que pour deux vecteurs (a,b) et (c,d), il faut que ac + bd = 0.
(ça ne marche que dans un plan orthonormal, mais la 3D comme on l'entend normalement en est un)

Donc en dimension 3, pour trouver un vecteur normal au vecteur (a,b,c), il faut trouer une vecteur (x,y,z) tel que ax + by + cz = 0"

:d) Olol on l'a tous apprit en seconde, XD ptdr mdr laule X)

Sujet fermé pour la raison suivante : Split.
Sous forums
  • Jeux d'aventure
  • Simulation
  • Business du jeu vidéo
  • Héros de jeux vidéo
  • Import
  • Magazines de jeux vidéo
  • STR (Stratégie Temps Réel)
  • FPS & TPS
  • RPG (Role Playing Game)
  • Jeux de courses
  • Jeux de sports
  • Musiques de jeux vidéo
  • Jeux de combat