Hello all,

I was concerned about the fact that the Go runtime is a bit slow at init time. 
As I suspected, the problem is in the size of the executable, that is almost 
2Mb. This is structural for Go since it compiles statically.

Then I created a variant of the go runtime, using GccGo.  GccGo is a Go 
compiler, updated to Go version 1.10, that compiles using the Gcc compiler 
infrastructure. As a result, it produces dynamically linked executables that 
are smaller than the binaries produced by the standard Go compiler.

You can see the results in the updated benchmark. The new runtime is 
actionloop-gccgo-v8

https://sciabarracom.github.io/incubator-openwhisk-runtime-actionloop/

GccGo is a bit slower than Go (but it is still the second faster runtime) but 
it is now the faster at init time because the executable is around 50k (and 
zipped it is only 17k).

I am unsure if replace GccGo in the official runtime or provide both. The fact 
that the executable is small so it leads to faster init time I think it is 
important, but the  GccGo compiler it is a bit behind in term of language 
support.

-- 
  Michele Sciabarra
  mich...@sciabarra.com

Reply via email to