Salut,
j'ai un choix de langage à faire pour un projet, la performance en terme de vitesse d'éxécution est une contrainte du projet.
Quand est-il aujourd'hui de la différence de vitesse c# et ++ ?
merci
Salut,
j'ai un choix de langage à faire pour un projet, la performance en terme de vitesse d'éxécution est une contrainte du projet.
Quand est-il aujourd'hui de la différence de vitesse c# et ++ ?
merci
Bonjour,
Tu pourras trouver un benchmarks sur cette page de plusieurs langages (C#, C++, Java) les tests sont réalisés sur plusieurs aspects de la programmation, int32, int64, exceptions, etc...
http://www.tommti-systems.de/go.html...enchmarks.html
La question a se poser est plutôt quelles sont les contraintes de vitesses qui te sont imposées.
Car si en comparant de façon brute les 2 langages, C# et C++, l'avantage va à C++, quelques soient leur performances respectives, un programme C++ mal écrit sera toujours plus lent qu'un programme C# optimisé.
De plus, il est possible que certaines choses ne soient faisable que d'un langage. A titre d'exemple je citerais la programmation "temps réels" sur laquelle j'ai travaillé, il y a quelques années et qui ne pouvais être faite qu'en langage natif, excluant de fait tout ce qui était managé (.Net, Java, ...)
Attention au lien donné, les tests datent de 2004 sur le framework 1.1, soit VS .Net 2003 et C#1. Depuis le framework a été considérablement amélioré, il est possible que ces tests ne soient plus pertinents.
D'ailleurs, si C++ arrive en tête les différences sont tout de même minimes avec C# (à part certains points, mais à noter que C# est plus rapide sur les I/O, donc s'il y a beaucoup de fichiers à écrire ou lire .....)
Oupss j'ai édité pendant que tu répondais.
Non, "Temps réels" n'a rien à voir avec une question de vitesse. C'est une notion de temps strict à respecter.
Par ma part, à l'époque, j'avais des calculs à effectuer toutes les 0.1ms +/-1%. Sachant que je tournais sous Windows NT 4.0 qui ne pouvais pas garantir sur le papier un temps de cycle inférieur à 50ms. Dans la réalité j'oscillais entre 25 et 34ms, à charge normale du système.
Pour mes devs j'avais été obligé de passer sur des librairies spéciales (RTX) qui venaient s'intercaler entre windows et le processeur/horloge et travaillaient directement sur celui-ci sans passer par Windows.
Ces librairies-là ne pouvaient être faite qu'en C natif (même pas du C++), l'interface quant à elle était faite en VB
@sevyc64:
Effectivement , mes excuses je n'avais pas fait attention à la date de parution du benchmark. Sinon pour les fichiers je suis sceptique, tout dépend de la façon de coder c'est évident. Un test serais pas mal à faire d'ailleurs ^^. Il est possible de faire une copie brute sans aucun traitement en C++ donc vitesse optimum.
@guillaume07:
De l'ordre de la minute, je pense pas qu'on puisse dire que c'est temps réel ^^. Dans la notion de temps réel, c'est un façon de faire croire à l'utilisateur que ce qui se passe s'exécute dans un temps que l'on ne peut pas percevoir avec notre cerveau donc qui ce passe "instantanément". La minute on peut la percevoir
Edit: Un test peut être réalisé avec une formule qui est:
la somme du coût des tâches divisée par leurs temps d'échéance.
Si c'est inférieur à 1 c'est bon.
Partager