AWS Lambda Language Benchmarking
I have seen several articles from years prior detailing the performance for various languages on AWS Lambda. Frankly, I did not believe the results the articles were reporting.
With no source code, infrastructure as code, or any details on conducting the performance testing, I could not reproduce and verify the results myself. Therefore I set out to create an open-source repository containing all the source code, infrastructure, etc. So anyone can reproduce my findings, even in years to come as the performance characteristics may change.
To test the various languages, they will all be performing a straightforward task. They are to take a String as an input and perform 100,000 SHA256 hashes upon it and return the results, to simulate an application performing work. For larger and more complex applications, I would expect the performance margins to widen even further.
The implementations for the various languages are what you could expect the typical developer to produce. No arcane wizardry or obscure performance optimisations have been introduced to tip the results to favour a particular language.
I will be investigating the languages Node.js, Python3, Go and Rust, this will cover the majority of languages used in AWS Lamdba implementations.
I am open to pull requests for both additional languages and performance optimisations and will update the article accordingly.
Local Performance⌗
We will start by looking at the local performance, which can then be compared and contrasted to AWS Lambda’s performance, to understand if their are any performance implications.