Je sais que j'ai souvent entendu dire que le langage C offre généralement un avantage en termes de performances par rapport au C ++. Je n'y ai pas vraiment pensé avant de me rendre compte que MSVC ne semble même pas prendre en charge le dernier standard de C, mais le plus récent, le C99 (à ma connaissance).
J'avais l'intention d'écrire une bibliothèque avec du code à restituer sous OpenGL afin de pouvoir la réutiliser. J'avais l'intention d'écrire la bibliothèque en C, car toute augmentation des performances est la bienvenue pour les graphiques.
Mais cela en vaut-il vraiment la peine? Le code utilisant la bibliothèque serait probablement écrit en C ++ et je préfère coder en C ++ en général.
Cependant, si cela produisait même une petite différence de performance, j'irais probablement avec C.
Il convient également de noter que cette bibliothèque serait quelque chose que je ferais pour fonctionner sous Windows / OS X / Linux et que je compilerais probablement tout en natif (MSVC pour Windows, Clang ou GCC pour OS X et GCC pour Linux. .ou éventuellement les compilateurs d’Intel pour tout).
J'ai regardé autour de moi et j'ai trouvé des points de repère et autres, mais tout ce que j'ai vu concerne GCC plutôt que MSVC et Clang. De plus, les repères ne mentionnent pas les standards des langues utilisées. Quelqu'un a un avis là dessus?
MODIFIER:Je voulais juste partager mon point de vue sur cette question après quelques années d'expérience. J'ai fini par écrire le projet pour lequel je posais cette question en C ++. J'ai commencé un autre projet à peu près au même moment en C, car nous cherchions à obtenir une petite performance. Nous avions besoin d'un lien pour le projet en C. Il y a quelques mois, j'ai atteint le point où j'avais vraiment besoin de cartes et de technologies avancées. manipulation de chaîne. Je connaissais les possibilités de cette fonctionnalité dans la bibliothèque standard C ++ et suis finalement parvenu à la conclusion que ces structures de la bibliothèque standard seraient probablement plus performantes et plus stables que les cartes et les chaînes que je pouvais implémenter en C dans un délai raisonnable. L'exigence de pouvoir être lié en C était facilement satisfaite en écrivant une interface C dans le code C ++, ce qui était fait rapidement avec des types opaques. La réécriture de la bibliothèque en C ++ semblait aller beaucoup plus vite que lors de l’écriture en C et était moins sujette aux bogues, en particulier aux fuites de mémoire. J'ai également pu utiliser la bibliothèque de threading standard de la bibliothèque, ce qui était beaucoup plus simple que d'utiliser des implémentations spécifiques à la plate-forme. En fin de compte, je pense que l’écriture de la bibliothèque en C ++ a apporté d’énormes avantages, avec éventuellement un faible coût en termes de performances. Je n'ai pas encore évalué la version C ++, mais je pense qu'il est même possible que j'aie gagné en performance en utilisant des structures de données de bibliothèque standard par rapport à celles que j'ai écrites. Je crois que l’écriture de la bibliothèque en C ++ a eu d’énormes avantages, avec éventuellement un faible coût en termes de performances. Je n'ai pas encore évalué la version C ++, mais je pense qu'il est même possible que j'aie gagné en performance en utilisant des structures de données de bibliothèque standard par rapport à celles que j'ai écrites. Je crois que l’écriture de la bibliothèque en C ++ a eu d’énormes avantages, avec éventuellement un faible coût de performances. Je n'ai pas encore évalué la version C ++, mais je pense qu'il est même possible que j'aie gagné en performance en utilisant des structures de données de bibliothèque standard par rapport à celles que j'ai écrites.