12 points par xguru 2021-10-14 | 5 commentaires | Partager sur WhatsApp
  • Test de la méthode POST avec le flux API-Gateway → AWS Lambda → DynamoDB

  • Tests effectués avec 128/256/512/1024/10240MB de mémoire

  • Cold Start

→ Globalement, Rust est le plus rapide. À 128Mb uniquement, Python arrive en tête

→ À l’exception de Java et .NET, la plupart sont rapides

→ Java ne peut même pas démarrer avec 128Mb, mais GraalVM le peut

  • Warm Start

→ Golang et Rust sont les gagnants

→ .Net affiche lui aussi des performances presque équivalentes à Go/Rust, mais seulement après 1k exécutions répétées (après le JIT)

→ GraalVM montre également des performances stables, similaires à .Net, et légèrement plus lentes que Rust/Go. Il ne fonctionne pas bien avec une configuration minimale

→ Java arrive juste derrière GraalVM. Lui aussi, comme .Net, n’atteint ses performances qu’après 1~3k répétitions

→ Python affiche des performances bonnes et stables, mais il est trop lent avec 128MB

→ Ruby offre des performances similaires à Python, mais après environ 20 minutes (15k répétitions), on observe une légère hausse de la durée d’exécution (duration)

→ Node.js est le runtime le plus lent. Sa durée d’exécution est aussi la plus longue

  • En combinant Cold + Warm, Golang et Rust sont les gagnants. Ils montrent toujours des résultats rapides et stables

  • Runtimes comparés : NodeJs(14.x), Python(3.9), Go(1.x), Ruby(2.7), .Net(3.1), Java (11), Rust(1.54.0), GraalVM(21.2)

5 commentaires

 
ehlegeth 2021-10-14

Je l’ai parcouru rapidement,

mais la hiérarchie Rust, Golang ~~ Python, Ruby ne semble pas vraiment différente de ce qu’on attend généralement...

Le fait que Java soit lent, alors qu’il n’a pas le coût de démarrage de la VM et même avec l’application du JIT, est un peu surprenant.

Je pensais aussi que Node.js serait rapide après le JIT, mais les résultats sont lents.

Peut-être que cela vient de différences dans l’architecture sur laquelle Lambda fonctionne ou dans la stack de virtualisation...

 
ehlegeth 2021-10-14

Il y a tellement de facteurs qui peuvent influencer les tests de performance qu’il ne faut peut-être pas non plus prendre ces résultats trop au sérieux... haha

 
eajrezz 2021-10-14

Le gagnant, ce ne serait pas golang ? Haha

 
ehlegeth 2021-10-14

Oui, on dirait bien que c’est le résultat.

Je n’ai pas encore utilisé golang dans un environnement cloud, mais j’ai l’impression que ça correspond parfaitement à ce type d’environnement.

 
codufdl 2021-10-14

Rust est vraiment trop séduisant ; j’avais acheté le livre sans encore le lire, mais là, ma curiosité est soudainement en feu haha