L'inlining qui est beaucoup-beaucoup plus agressif et puissant en C++ du au système de template: Ca permet de retirer des appels de fonctions là où ils ne sont pas utiles. Le prix a payé par contre c'est les temps de compilation.
Le système de type beaucoup plus puissant (lambda functions, Generics, strict aliasing) qui donne au compilateur les mains libres pour des optimisations là où un compilateur C aurait jeté l'éponge car il serait déjà dans une soupe de pointeurs void*.
Ces raisons sont plutôt bien illustrée par (C) qsort vs (C++) std::sort
[^] # Re: Performances
Posté par Firwen (site web personnel) . En réponse au journal Rust dans Linux, ça démarre fort!. Évalué à 10.
Les principale raisons sont:
L'inlining qui est beaucoup-beaucoup plus agressif et puissant en C++ du au système de template: Ca permet de retirer des appels de fonctions là où ils ne sont pas utiles. Le prix a payé par contre c'est les temps de compilation.
Le système de type beaucoup plus puissant (lambda functions, Generics, strict aliasing) qui donne au compilateur les mains libres pour des optimisations là où un compilateur C aurait jeté l'éponge car il serait déjà dans une soupe de pointeurs void*.
Ces raisons sont plutôt bien illustrée par (C) qsort vs (C++) std::sort
https://www.geeksforgeeks.org/c-qsort-vs-c-sort/
https://martin-ueding.de/posts/qsort-vs-std-sort/