Posted on Mardi 29 mai 2007
Dans le choix d’un langage de programmation, de nombreux éléments entrent en compte : rapidité de développement, portabilité, modèle de stockage de données…
Pour le développement des projets en cours au sein de ma société, l’un des critères les plus important est sans doute le temps d’exécution et la consommation de ressource processeur et mémoire.
Certains robots (comme celui de Wasalive) exécutent en effets une vingtaine de threads en parallèles sur plusieurs serveurs et la moindre lourdeur peut plomber les performances.
C’est pourquoi j’entame aujourd’hui une série de benchmark sur le “coût machine” des principaux langages de programmation.
Pour cela, je vais m’appuyer sur les tests réalisés par “The Computer Language Benchmarks Game” hébergé par le site officiel de la très sérieuse distribution linux Debian.
Ce site nous propose les consommations en temps processeur et en mémoire pour l’exécution d’une dizaine de fonction de référence (nsieve, n-body, sum-file) écrite dans chacun des langages.
Afin d’avoir une première vision globale (et grossière) de la consommation des principaux langages de programmation, je vous présente un indice qui correspond à la somme de chacunes des fonctions benchmarkées en pondérant la consommation de cpu*3 et mémoire*1.
Je ferais dans des prochains billets des focus sur certaines familles de langages et sur des fonctions plus spécifiques (langage interprété, langage compilé, programmation orienté web…).

| Language | Indice |
|---|---|
| C gcc |
1.0
|
| Pascal Free Pascal |
1.2
|
| C++ g++ |
1.2
|
| Ada 95 GNAT |
1.9
|
| Fortran Intel |
2.4
|
| C# Mono |
4.0
|
| Java JDK -server |
4.3
|
| Python |
18.0
|
| Perl |
21.0
|
| PHP |
38.0
|
| Ruby |
38.0
|
| JavaScript SpiderMonkey |
74.0
|
Premier constat rapide : si on exclu le Javascript qui est un peu à part, le rapport du “coût machine” entre les deux extrêmes le C et le PHP va de 1 à 40. Il est interessant de mettre donc en perspective ce rapport avec les différences de coût de développement entre les langages.








