Benchmarks polyglottes : choisir le bon outil pour le bon travail
Comment les benchmarks polyglottes vous aident à choisir la bonne pile pour chaque application – pas un seul langage pour les gouverner toutes
Un compagnon court et lisible. Pour une analyse approfondie de l'architecture - disposition du harnais, matrice de décision, anti-modèles et comment créer des benchmarks - lisezle long article.
Votre organisation a sélectionné une pile en 2019. Ce n'est pas le cas de vos charges de travail.
La plupart des équipes standardisent encore un seul langage pour chaque nouveau service : tout en Node, tout en Python, tout en Java, ou un pari héroïque sur Rust pour un greenfield uniquement. Cette habitude est compréhensible : le recrutement, les modèles CI et l’examen de la sécurité deviennent tous plus faciles lorsque la pile est uniforme. Le problème est que les charges de travail ne sont pas uniformes. Une passerelle API, une tâche ETL nocturne, une transformation périphérique NGINX, un parc de microservices JVM et un backend de discussion avec des connexions de longue durée sollicitent différentes parties du runtime. Choisir un gagnant à partir d'un débat de couloir ou d'un seul micro-benchmark est la façon dont vous vous retrouvez avec le mauvais outil portant la mauvaise charge.
Polyglot Benchmarksest l'antidote : un harnais reproductible et un tableau de bord en direct qui comparehuit environnements d'exécutionsur les mêmes charges de travailHTTP du, afin que les architectes puissent faire correspondre les preuves aux contextes délimités au lieu du biais de la pile par défaut.

Ce qu'il mesure
Le tableau de bord public compareNGINX njs,OpenResty Lua,Python (FastAPI),Go (net/http),Rust (Actix),Bun,Java (Javalin / Jetty)etKotlin (Ktor / Netty)à travers sept tests synthétiques qui reflètent les modèles API et Edge réels : ligne de base en texte brut, sérialisation JSON, fibonacci lié à CPU, manipulation de chaînes, inspection des demandes, sous-requête interne + transformation et logique de routage. Chaque test rapporte les requêtes par seconde, la latence moyenne et finale (y compris P99), le temps écoulé jusqu'au premier octet depuis curl et le nombre d'erreurs - diffusés en direct à la fin dubench.sh.
Java et Kotlin se trouvent aux côtés des environnements d'exécution compilés et de script afin que les magasins JVM puissent voir comment Javalin et Ktor se négocient contre Go, Rust, Bun et FastAPI sur des itinéraires identiques – et non contre un récit ondulé « entreprise contre greenfield ». Le harnais réside dans les exemples/benchmarks de workflow: les services Docker Compose, un profilwrkpartagé (10 secondes, 4 threads, 100 connexions) et les résultats JSON consommés par le tableau de bord. Vous pouvez le créer pour vos propres candidats et hot paths.
Pourquoi s'agit-il d'un cadre de décision et non d'un classement
Polyglot Benchmarks ne couronne pas une langue pour toujours. Les gagnants changent par ligne de test – exactement ce que vous souhaitez lors de la conception de microservices. La section de verdict du tableau de bord mappe les résultats aux cas d'utilisation (routage périphérique dans Lua/njs, concurrence principale dans Rust/Go, services JVM dans Java/Kotlin, vitesse dans Python). Telle est la thèse :polyglotte par conception, avec des données pour les comités d'examen de l'architecture au lieu d'opinions.

Six avantages pour les responsables de la plate-forme et de l'ingénierie
- Preuve sur opinion— joindre des graphiques et des configurations aux ADR ; régler les débats sur la pile avec des courses mesurées.
- Gagnants spécifiques à la charge de travail— les chemins sensibles à la latence, les transformations par lots, en périphérie et les domaines JVM obtiennent des leaders différents.
- Coût total de possession— le RPS brut ne suffit pas ; pesez le temps de construction, la taille de l’image, l’adéquation des compétences de l’équipe et la charge des opérations.
- Workflows reproductibles— même référentiel, même fichier Compose, même script wrk ; réexécutable dans CI.
- Microservices polyglottes légitimes— différentes langues par limite de service sans honte ni surprise.
- Réduction des risques— prototype finaliste avant un mandat à l'échelle de l'organisation.

Démarrage rapide
- Ouvrez le tableau de bord en directpendant qu'une exécution est en cours (ou démarrez-en une localement).
- Clone
workflow-examples,cd benchmarks,docker compose up— huit services linguistiques plus un tableau de bord et un banc d'exécution. - Lisez
results.jsonsur le volume du tableau de bord et mappez les gagnants àvos lignes de charge de travail. - Écrivez l'ADR — incluez la durée, les threads, les connexions et la classe matérielle.
Lire la version longue
Le long articlecouvre la présentation complète du dépôt, un tableau de critères, le diagramme de matrice de décision, les modèles de cas par famille de tests (y compris Java et Kotlin), les anti-modèles, les limitations et les extraits prêts pour le référencement à partager avec votre ARB. Publié parWorkstation; site de référence hébergé surpolyglot-benchmarks.fictionally.org.
#Rust #GoLang #Bunjs #Java #Kotlin #Lua #Python #njs #FastAPI #Javalin #Ktor #OpenResty #polyglot #benchmarks