Here’s an analysis of cold starts on AWS Lambda (updated daily) that backs up your claim that Rust has the fastest cold starts - https://maxday.github.io/lambda-perf/. Although to be fair, Go isn’t that far behind on warm starts.
One caveat - these are hello world programs without I/O. The maintainer plans to add I/O to the benchmarked code.
Is not "hello world programs without I/O" basically measuring the startup time of the language's runtime? Not that that's not important, but given that Rust and Go are the only two compiled languages there, and Go has a slightly heavier runtime, these times are entirely what I'd expect.
When I hear "cold start" I usually think of the amount of time between process exec to when my first line of code starts executing. In this case I would just assume that Rust will be faster since it's pretty much how long it takes to load the binary image into memory and jump to the _start/main entrypoint. Go has a whole runtime to boot up before ever getting to that point. Many, many layers of setup code. So it's not surprising at all that it has a significantly slower "cold boot".
> Go has a whole runtime to boot up before ever getting to that point. Many, many layers of setup code. So it's not surprising at all that it has a significantly slower "cold boot"
That’s one misconception you have about Go, when it comes to Cold start uptimes Go is one of the top garbage collected language to compete the likes of C, the go runtime is a progressive runtime it runs together with your code so it’s basically a Vlang code with added C codes
Yeah… I have two containers running on google cloud run right now, the nextjs container cold starts an average of 1.5 seconds. The actix web rust container cold starts in 150 ms. The difference is staggering, I can’t even tell when the rust container cold starts