Open stephane-klein opened 9 months ago
Je lis ici de grandes différences de perf :
iterations 1000000000 value 3.14159
clang
time 5.70893sgcc
time 9.08183sclang
-O2 time 6.01251sgcc
-O2 time 5.13561sclang
-march=native -O2 time 1.21312sgcc
-march=native -O2 time 4.7192s
Je doute que ce type de benchmark ressemble aux types de tâches que réalise une application web classique :thinking:.
J'ai de nombreuse fois entendu Quentin Adam (exemple ici à 23:25) dire que c'est du gâchis d'exécuter des containers Docker (image binaire) en production, qui n'ont pas été compilés avec les optimisations des CPU cibles, des serveurs de productions. Cette opinion est aussi valable pour les packages binaires de distributions (.deb, .rpm...). Quentin conseille d'utiliser des binaires du kernel Linux, glibc, Postgres... (tous les services qui tournent sur le serveur) compilés avec les optimisations du CPU cible, celui qui tourne sur le serveur de production.
D'un point de vue théorique, je comprends tout à fait cette opinion, je la partage. Toutefois, je n'ai aucune idée du niveau de gain de performance que peut apporter ces optimisations CPU.
J'ai fait quelques recherches, pour le moment, je n'ai rien trouvé.
Quelques ressources :
Dans un premier temps, ce que je peux faire pour mes projets de production, c'est :
Tâche à faire :