You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openwhisk.apache.org by Michele Sciabarra <mi...@sciabarra.com> on 2018/12/09 18:14:41 UTC
Bennchmarking all the runtimes, both init and run
Hello Whiskers,
without any further ado here is the report with a nice html graph.
https://sciabarracom.github.io/incubator-openwhisk-runtime-actionloop/
Test Methodology: I wrote a "multipost" Go application able to run multiple init and run in sequence and I measured the execution time with the unix "time" utility. I tested runs executing one init and 1000 runs in sequence. I tested init starting 100 containers in different ports then executing 100 init AND run in sequence on the various containers.
A few notes.
I tested go and swift both precompiled (main_go.zip and main_swift.zip) and with a compilation on-the-fly. Go init time looks slower than swift, but the Go is statically compiled and it is huge, while the swift is dynamically compiled and it is small. I believe most of the time is spent uploading and unpacking the zip. I should consider creating dynamically linked go execution.
Python runtimes are slow, and this is not a surprise, I will try to migrate them to actionloop. Ruby also is pretty slow and a migration should be considered. Actionloop is the faster on execution for go, very close to the fastest nodejs.
I can contribute the benchmarks to the repo devtools if interested.
--
Michele Sciabarra
michele@sciabarra.com
Re: Bennchmarking all the runtimes, both init and run
Posted by Carlos Santana <cs...@gmail.com>.
This is super awesome Michele +1
- Carlos Santana
@csantanapr
> On Dec 9, 2018, at 1:14 PM, Michele Sciabarra <mi...@sciabarra.com> wrote:
>
> Hello Whiskers,
>
> without any further ado here is the report with a nice html graph.
>
> https://sciabarracom.github.io/incubator-openwhisk-runtime-actionloop/
>
> Test Methodology: I wrote a "multipost" Go application able to run multiple init and run in sequence and I measured the execution time with the unix "time" utility. I tested runs executing one init and 1000 runs in sequence. I tested init starting 100 containers in different ports then executing 100 init AND run in sequence on the various containers.
>
> A few notes.
>
> I tested go and swift both precompiled (main_go.zip and main_swift.zip) and with a compilation on-the-fly. Go init time looks slower than swift, but the Go is statically compiled and it is huge, while the swift is dynamically compiled and it is small. I believe most of the time is spent uploading and unpacking the zip. I should consider creating dynamically linked go execution.
>
> Python runtimes are slow, and this is not a surprise, I will try to migrate them to actionloop. Ruby also is pretty slow and a migration should be considered. Actionloop is the faster on execution for go, very close to the fastest nodejs.
>
> I can contribute the benchmarks to the repo devtools if interested.
>
> --
> Michele Sciabarra
> michele@sciabarra.com