Michele some of your work on this was prescient - the just announced new features of aws lambda show it’s in this direction as well (polling a socket, suspending and resuming on new messages). Need to dig deeper but this is great validation.
-r > On Nov 29, 2018, at 5:39 AM, Michele Sciabarra <[email protected]> wrote: > > Another (I would say easy) win for actionloop is Swift. > Numbers just tested: > > Current one: > > *** Testing openwhisk/action-swift-v4.1 *** > Running 10s test @ http://localhost:8080/run > 1 threads and 1 connections > Thread Stats Avg Stdev Max +/- Stdev > Latency 11.93ms 4.42ms 86.72ms 98.50% > Req/Sec 85.72 9.85 101.00 87.00% > 859 requests in 10.05s, 116.60KB read > Requests/sec: 85.51 > Transfer/sec: 11.61KB > > The new one you have the PR to merge: > > *** Testing msciab/actionloop-swift-v4.2.1 *** > Running 10s test @ http://localhost:8080/run > 1 threads and 1 connections > Thread Stats Avg Stdev Max +/- Stdev > Latency 14.15ms 66.82ms 529.16ms 95.77% > Req/Sec 1.04k 151.90 1.21k 88.54% > 9935 requests in 10.01s, 1.28MB read > Requests/sec: 992.40 > Transfer/sec: 130.83KB > > > -- > Michele Sciabarra > [email protected] > > ----- Original message ----- > From: Carlos Santana <[email protected]> > To: [email protected] > Subject: Re: Submitted PR for performance boost of the Go Runtime > Date: Wed, 28 Nov 2018 09:20:21 -0500 > > Thanks Michele for looking into this > > The numbers look great ! > > I will review the PR soon > > -- Carlos > > On Wed, Nov 28, 2018 at 5:25 AM Michele Sciabarra <[email protected]> > wrote: > >> Hello all, >> >> after the first embarrassing numbers of the Golang runtime that made me >> hurry to fix performances :)), here I provide the updated numbers of >> action-loop based runtimes compared with the current ones. Those numbers >> can vary slightly from one run to another (for example I discovered it >> depends how charged is your Mac) but generally are proportional when >> running in the same environment. >> >> I just run the benchmarks, and I have: >> >> Performance report >> *** actionloop-golang-v1.11 (improved) >> Requests/sec: 1086.67 >> Transfer/sec: 154.93KB >> *** nodejs6action >> Requests/sec: 1006.41 >> Transfer/sec: 225.07KB >> *** actionloop-nodejs6action >> Requests/sec: 1230.92 >> Transfer/sec: 157.09KB >> *** python3action >> Requests/sec: 20.05 >> Transfer/sec: 2.62KB >> *** actionloop-python >> Requests/sec: 1066.84 >> Transfer/sec: 139.61KB >> >> Note the actionloop runtimes are really prototypes, I have not run any >> test suite against them. >> >> -- >> Michele Sciabarra >> [email protected] >> >> ----- Original message ----- >> From: Michele Sciabarra <[email protected]> >> To: [email protected] >> Subject: Submitted PR for performance boost of the Go Runtime >> Date: Tue, 27 Nov 2018 23:38:11 +0100 >> >> I just submitted a PR to improve performances of the Go/ActionLoop runtime >> while being the less invasive possible. >> >> I am keeping the current design and I have not changed approach: there is >> still child process fed by the HTTP server on standard input with output on >> file descriptor 3. I am still using the standard http server (not the fast >> HTTP server). >> On the converse, I removed all the goroutines. They do not play well with >> external processes. Instead, I am using the classical technique of >> suspending on reading the standard input is fast to commute to the child >> process/ >> >> I reached in my tests around 1150 requests/second (a bit worse than the >> nodejs but I think decent). >> It is possible to further improve performances up to 1500 but I need to >> abandon the actionloop model and run an action with an independent server, >> so for now I am not doing anything like this, >> >> -- >> Michele Sciabarra >> [email protected] >> > > > -- > Carlos Santana > <[email protected]>
