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

Compilation = meilleures perfs ?

Pseudo supprimé
Pseudo supprimé 05 novembre 2015 à 20:54:15

Bonsoir à tous.
Est-ce que un logiciel compilé directement sur la machine et un binaire compilé pour l'architecture auront les mêmes performances ?

Pseudo supprimé
Pseudo supprimé 05 novembre 2015 à 21:30:04

Je n'ai pas la science infuse sur ce sujet, donc je laisserais quelqu'un te confirmer ou non mes dires. Voici ce que je répondrais : pas forcément. Tout dépend de comment le binaire a été compilé, et de comment les sources ont été compilées sur ta machine. Le fait de compiler sur ta machine permet d'obtenir un binaire taillé pour tes besoins, pour ce qui est de l'optimisation, il doit y avoir quelques astuces (flags d'optimisation, etc.). Mais le fait de compiler est surtout intéressant pour la modularité qu'il apporte, et c'est pourquoi on considère que c'est du sur-mesure.

Message édité le 05 novembre 2015 à 21:32:09 par Pseudo supprimé
godrik
godrik
Niveau 30
06 novembre 2015 à 17:17:20

Est-ce que un logiciel compilé directement sur la machine et un binaire compilé pour l'architecture auront les mêmes performances ?

Ce n'est pas la bonne question. Si tu utilise les memes flags de compilation, alors le binaire sera le meme. Cependant, certains flags de compilation sont "dynamiques" (-march=native -mtune=native) et regarde ce qu'il y a dans la machine et ajute les flags de compilation en fonctions. Dans ce cas, la difference entre compiler sur une machine ou compiler sur une autre sera existant.

Cepandant, il faut aussi voir ce que l'application fait pour savoir si il va y avoir une difference en pratique. Un programme comme ls, par exemple, fait juste une suite d'appel de bas niveau. Tu pourrais l'ecrire en javascript qu'il ne serait pas bien plus lent. Mais un prgoramme qui fait beaucoup de calcul, par exemple un compresseur audio, est plus calculatoire.

Aussi il faut voir qu'il y a une difference entre optimiser pour une ISA donne. Et optimiser pour une architecture donne. Optimiser pour une ISA dis juste que tu t'authorise a emettre certaine instruction, comme par exemple les extensions AVX. Mais ca ne veut pas forcement dire que ca va s'executer plus vite. Par exemple, certaines architecture ont une operation Fused-Multiply-Add, mais n'ont pas de support physique pour executer le FMA. Le processeur se contente de decoder le FMA avec un MUL et un ADD en microcode, ce qui n'apporte pas grand chose en terme de performance (juste un load d'instruction).

Les aspect de performances dependent souvent de l'architecture du processeur et de comment le code est ecrit. Combien il y a de port d'execution dans le back-end? Quel est la taille du cache? Quel est la latence du cache? Quel est la bande passante memoire? ...Et tu peux vouloir generer des codes differents en fonction de ces parametres.

En vrai, j'imagine que la vraie question etait "est ce que ca vaut le coup de recompiler ses software comme un gentoo-eux?" Et la reponse est "probablement pas". Si il y a une difference de performance utile en fonction de la compilation, les libs generent probablement differentes version du code et utilise la bonne version au runtime. (MKL, av, ...)

Pseudo supprimé
Pseudo supprimé 06 novembre 2015 à 19:13:20

Merci pour cette réponse très détaillée :)

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