Introduction
In the article from the part 2 and give all Lambda functions 1024 MB memory.
The results of the experiment below were based on reproducing more than 100 cold and approximately 100.000 warm starts for the duration of 1 hour with Lambda function which is responsible for retrieving the product (stored in the DynamoDB) by its id. For it I used the load test tool or .
Comparing these performance measurements with from the article with measurements we did for and where our Lambda function doesn't use any framework like Spring Boot, we see that for Lambda function having the same 1024 MB of memory, values about 0.5-0.6 seconds lower for each percentile when using pure Lambda function. I personally think that my sample Spring Boot 3 application has some optimization potential as I can't explain such a big difference in the cold start times between those. Maybe you as a reader can help me optimize my code as my (maybe naive) expectation is that the use of the Spring Boot 3 framework with AWS Lambda and GraalVM Native image may should to approximately 0.2-0.3 seconds higher cold start times comparing to the usage of the pure Lambda function, but not 0.5-0.6 seconds.
At the time of publishing this article newer versions became available (GraalVM 23 runtime, Spring Boot 3.4 and minor update of Spring Cloud Function library) so you case make the version changes to the pom.xml and re-compile GraalVM Native image following the instructions from the part 2 of the series and re-measure the performance.
In the next article of the series, we'll explore the impact of different Lambda memory settings (from 256 to 1536 MBs) on the cold and warm start times as the memory setting also heavily influences the cost of running the Lambda functions.
SOCIAL SHARE CARD GENERATOR