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]
