Hello all, 

last week I discovered that, while the Python runtime is pretty slow and using 
an ActionLoop runtime improves Python a lot, the NodeJS runtime is damn fast, 
and the ActionLoop/GoLang runtime is way behind it.

So I tried to understand what is going on and why there is so much difference 
between ActionLoop and NodeJS
Most notably I decided to try to get rid of GoRoutines and just to launch a 
subprocess from an HTTP server  and feed data to it.
Hence I wrote a quick-and-dirty prototype to see how fast I can go.

Those are the numbers, comparing raw performances of runtimes.

I measured performances in a similar environment. I run all the tests in Docker 
for Mac on a recent MacBook Pro,
using an "hello" action using the command 'wrk -t1 -c1 
http://locahost:8080/run' that run a single thread single connection test for 
10 seconds. 

*** nodejs6action
Requests/sec:   1181.36
Transfer/sec:    264.19KB
*** python3action
Requests/sec:     19.80
Transfer/sec:      2.58KB
*** actionloop-golang-v1.11
Requests/sec:     83.80
Transfer/sec:     11.95KB
*** PROTO new actionloop-golang-v1.11
Requests/sec:   1031.38
Transfer/sec:    175.25KB
and this is the current


So while NodeJS will stay faster at 1181 req/sec (well, for a number of 
reasons), with ActionLoop (that can work with every language) we can get close 
at 1031 req/sec


Now I have to work in the runtime to implement the changes I made to the 
prototype

-- 
  Michele Sciabarra
  [email protected]

Reply via email to