1 pièce(s) jointe(s)
C# versus C++ en vitesse d'exécution dans quels cas sont ils les plus rapides ?
C# versus C++ en vitesse d'exécution dans quels cas sont ils les plus rapides ?
David Bolton effectue un cas particulier de micro benchmark avec les deux langages
Généralement C++ est reconnu comme étant un des langages les plus rapide en vitesse d'exécution. David Bolton se présente comme un développeur expérimenté et il est le fondateur de la société Bespoke Programmers qui a longtemps travaillé avec les langages C# et C++. Dans une de ses publications, il s’est intéressé à la vitesse d’exécution de ces deux langages pour déterminer lequel était plus rapide que l’autre. Pour ce faire, il a écrit un programme en C++ qu’il a ensuite traduit en C# et comparé les deux versions du programme à leur exécution. La comparaison des temps d’exécution des deux versions du programme a montré que la version C# s’est exécutée deux fois plus vite que la version C++, ce à quoi il ne s’attendait pas. En effet, avec les nouvelles versions de C++, le langage est devenu beaucoup plus puissant avec des ajouts de nouvelles fonctionnalités. Celles-ci couplées au fait que C++ utilise des caractères codés sur 8 bits alors que C# utilise des caractères codés sur 16 bits, David croyait qu’il serait plus rapide à l’exécution. Cependant il s’est rendu compte que C# pouvait être aussi rapide, voire plus si on fait les bonnes optimisations.
Pour mieux nous faire comprendre, David nous fait entrer dans son code pour en expliquer le principe. Le programme en question, écrit en C++ crée un fichier texte générant automatiquement des cartes de poker représentées par deux caractères chacune (exemple : DP = Dame de Pique). Le programme lit ensuite les données de ce fichier et écrit le temps mis dans un autre fichier (10 caractères par ligne). Cela a pris 3.5 secondes au programme écrit en C++ pour finir de lire le fichier entier qui contient la représentation d’un million de cartes. La version C# du même code a pris seulement 1,7 seconde pour s’exécuter soit une vitesse d’exécution deux fois plus grande que la version C++.
On ne peut cependant pas déduire une généralité pour une comparaison en se basant sur ce seul micro benchmark comme il semble vouloir le faire penser, pouvez-vous expliquer pourquoi vous êtes de son avis, ou d'un avis contraire ?
Sources : Code source sur github & Article sur Dice
Et vous ?
:fleche: Pensez-vous que C# peut être parfois plus rapide dans certains cas que C++, ou dans quels cas C# peut être plus rapide que C++ d'après votre expérience personnelle ?
:fleche: Avez-vous des benchmarks ou des micro benchmarks à proposer qui montrent dans quel cas C++ ou C# sont les plus rapides ?
Voir aussi
:fleche: le forum Langage de programmation
:fleche: la rubrique générale Développement
La banane parfois ca ressemble... à un fruit, mais pas tout le temps.
Comprendrai jamais ce genre d'article d'un autre age.
A mon tour :
Aujourd'hui un test avec un résultat qui va vous laisser sur le c*** :
Le vélo dans Paris c'est plus rapide que la voiture (mais parfois non, mais souvent oui)
Demain : Python c'est lent
Après demain : PHP c'est nul
La semaine pro : Linux c'est génial, Windows c'est de la merde (et M$ c'est le mal)
:mouarf: