Language Runtime Performance - Serverless Architectures with AWS Lambda

Language Runtime Performance

Choosing a language runtime performance is obviously dependent on your level of comfort and skills with each of the supported runtimes. But if performance is the driving consideration for your application, the performance characteristics of each language are what you might expect on Lambda as you would in another runtime environment: the compiled languages (Java and .NET) incur the largest initial startup cost for a container’s first invocation, but show the best performance for subsequent invocations. The interpreted languages (Node.js and Python) have very fast initial invocation times compared to the compiled languages, but can’t reach the same level of maximum performance as the compiled languages do.

If your application use case is both very latency-sensitive and susceptible to incurring the initial invocation cost frequently (very spiky traffic or very infrequent use), we recommend one of the interpreted languages.

If your application does not experience large peaks or valleys within its traffic patterns, or does not have user experiences blocked on Lambda function response times, we recommend you choose the language you’re already most comfortable with.