Skip to content

Benchmark langages I

📆 01/02/2026


IMG

Les benchmarks entre langages de programmation existent depuis les débuts de l'informatique et tout développeur passionné a ses propres critères pour déterminer le langage qui aura sa préférence. De plus, l'environnement d'exécution, la version du compilateur/runtime utilisé, l'algorithmique implémentée ou encore la bonne adéquation du langage au problème posé influeront grandement sur les résultats finaux de l'exercice.

Ceci étant dit, rien ne vous empêche de réaliser vous même un benchmark sur un ou plusieurs critères qui vous intéressent. Pour ma part, j'ai choisi de tester la vitesse d'exécution d'un programme simple au cours de l'apprentissage du Cobol, langage réputé dans la manipulation de fichiers.

La problématique

La simulation consiste à compter le nombre d'enregistrements d'un fichier conséquent (plus de 3,7 millions de lignes) et de sommer les valeurs d'un champ particulier. En l'occurrence, le fichier concerné est constitué de l'ensemble des transactions immobilières réalisées en France sur une année donnée. J'avais d'ailleurs déjà utilisé ces données publiques lors de mon projet Kiko relatif aux données climatiques.

Le processus géré par chaque code source est volontairement trivial : balayer ce fichier important, compter son nombre d'enregistrements et faire la somme d'un champ spécifique (ici, le montant des ventes immobilières).

Les langages comparés sont au nombre de 6 : Javascript, C++, Cobol, Python, C#, Zig. Le dernier vous sera peut-être moins connu : il a été conçu dès 2015 par Andrew Kelley qui a souhaité un langage très robuste, efficace et maintenable. Bun, environnement d'exécution JavaScript concurrent de Node, est écrit majoritairement en Zig ou bien le projet communautaire Ghostty de Mitchell Hashimoto, le fondateur de Hashicorp.

Les résultats

Vous pourrez parcourir les différents codes source sur GitHub et constater la relative simplicité de l'algorithmique (le fichier README vous aidera à installer cette démonstration sur votre propre machine). Seul C++ possède deux versions : une version classique, très similaire aux autres versions, et une version rapide que j'ai retravaillée car j'étais frustré de constater la même performance qu'avec Javascript.

Voici les performances moyennes constatées sur un PC Windows 11 - 2,8 GHz, Intel Core i9-10900F (10 cœurs), 64 Go de RAM :

Langage / ImplémentationTemps moyenTaille de l'exécutable (ko)
C++ (version fast)750 ms267
Zig785 ms258
C#800 ms1 246
JavaScript (Node.js)2 400 msN/A (runtime externe)
JavaScript (Bun)2 600 ms110 486
C++ (version classic)2 500 ms281
Python6 000 msN/A (interpréteur requis)
Cobol17 000 ms66

Vous pouvez noter 3 blocs assez distincts :

  • 3 langages mènent le bal : C++ (fast), Zig et... C#. J'avoue avoir été impressionné par la qualité de compilation de la dernière version de .Net
  • Javascript et C++ (classic) forment un second pack, avec des performances déjà 3 fois inférieures
  • Enfin, Python et Cobol sont assez nettement distancés. Deux commentaires : le code Python n'a volontairement pas été compilé avec des outils comme Nuitka et le compilateur Cobol GNU n'est probablement pas vraiment optimisé sous Windows. Mais, la clarté du code Python et Cobol est à noter !

Attention toutefois à ne pas tirer des conclusions trop hâtives de ce benchmark très simplifié : un langage poussé dans ses retranchements, même si le code perdra en lisibilité, peut faire des merveilles (e.g. comparez les deux versions du code C++...). Mon propos était surtout de comparer des performances brutes sans souci majeur d'optimisations dans un premier temps.

Cette première expérience sera donc suivie par d'autres, n'en doutez pas 😉



> Accueil > Tous les articles

Site généré avec VitePress - Hébergé @Netlify
Visitez fa2v.fr