Skip to content

Latest commit

 

History

History
76 lines (40 loc) · 3.73 KB

File metadata and controls

76 lines (40 loc) · 3.73 KB

🏠 Home | ⬅️ Reports index

Benchmark report

Branch: advanced-benchmarking
Date: Sun, 16 Apr 2023 12:51:58 GMT

TL;DR

  • itty-aws improves cold start function init duration by 50% and cold start function global duration by 25%.
  • On warm starts, itty-aws is comparable to AWS SDKs.
  • In most metrics, itty-aws is more stable and consistent across invocations and runtimes.
  • During cold starts, the latency of itty-aws API calls is longer than its alternatives, which has a negative impact on the duration of the function. It seems that it is related to the time needed to establish the TCP connexion during HTTP requests, but it needs to be confirmed.

Cold starts

Cold starts total duration

In cold start situations, ìtty-aws improves the total duration of functions in each scenario by nearly 25%. It also improves duration consistency in most situations, except in Node.js 18.x with the @aws-sdk from the runtime. itty-aws also brings more consistency across execution environments. This apparent overall improvement hides different realities discussed later.

coldStarts-totalDuration

Cold starts init duration

As expected, in cold start situations, itty-aws improves init duration a lot, by nearly 50%. It also improves consistency across invocations and execution environments.

coldStarts-initDuration

Cold starts duration

In cold start situations, the itty-aws functions last longer than their aws-sdk and @aws-sdk alternatives. This is more than offset by improvements in initialization time, which provide the overall performance gains described previously. However, itty-aws improves consistency across all execution contexts.

coldStarts-duration

Cold starts API call latency

Analysis of API call latency during cold starts reveals that itty-aws performs worse than its alternatives in this regard. Even more compared to @aws-sdk. This is probably what impacts the duration of the functions the most in our setup. This is our best hint to improve the overall performance of itty-aws even further.

coldStarts-apiCallLatency

Cold starts HTTP Request latency

itty-aws does not provide the necessary hooks to measure HTTP requests latency, either as an event emitter like aws-sdk or through a middleware architecture like @aws-sdk. It would be a good improvement to further analyze its performance.

coldStarts-httpRequestLatency

Cold starts max memory

itty-aws uses less memory and is way more stable in this regard than AWS SDKs.

coldStarts-maxMemory

Warm starts

Warm starts duration

In warm start situations, functions duration are extremly short in any context. However itty-aws always performs better and provides more consistency than AWS SDKs.

warmStarts-duration

Warm starts API call latency

In warm start situations, itty-aws is on-par with aws-sdk and @aws-sdk with extremely good performance, below 8ms. @aws-sdk performs slightly better however.

warmStarts-apiCallLatency

Warm starts HTTP request latency

itty-aws does not provide the necessary hooks to measure HTTP requests latency, either as an event emitter like aws-sdk or through a middleware architecture like @aws-sdk. It would be a good improvement to further analyze its performance.

warmStarts-httpRequestLatency

Warm starts max memory

itty-aws uses less memory than AWS SDKs.

warmStarts-maxMemory