Closed StarpTech closed 5 years ago
Hi, I updated versions & results. I think the benchmark framework is working properly. But it seems Seneca blocked other frameworks, so I moved it to the last position. And I can't update Seneca because 3.4.0 doesn't work with seneca-nats-transport.
Hi, I also benchmark the frameworks which support NATS but I can't confirm your results. Do you know what's the discrepance?
That's correct seneca-nats-transport does not work with Seneca 3.4.0
From platform info, the only difference is that I'm running it on Win7 :)
And you are using Node.Js < 8.4
But I ran the last test on 8.4.0
I will try it on my wife's notebook with Win10
Here my benchmark on Node.Js 8.4
uite: Call remote actions
. Running 'Moleculer'...bench-remote > service.online bench-remote#b91118f6-f74d-4fd0-b490-62eb4276cdc4
√ Moleculer* 838 rps
√ Hemera* 5,493 rps
√ Cote* 18,225 rps
√ Seneca* 3,151 rps
Moleculer* -95.4% (838 rps) (avg: 1ms)
Hemera* -69.86% (5,493 rps) (avg: 182μs)
Cote* 0% (18,225 rps) (avg: 54μs)
Seneca* -82.71% (3,151 rps) (avg: 317μs)
-----------------------------------------------------------------------
Node.Js 6.10.0
Suite: Call remote actions
. Running 'Moleculer'...bench-remote > service.online bench-remote#15a2fecc-4dce-427b-9d73-f32595684871
√ Moleculer* 2,564 rps
√ Hemera* 4,762 rps
√ Cote* 17,264 rps
√ Seneca* 2,491 rps
Moleculer* -85.15% (2,564 rps) (avg: 389μs)
Hemera* -72.42% (4,762 rps) (avg: 209μs)
Cote* 0% (17,264 rps) (avg: 57μs)
Seneca* -85.57% (2,491 rps) (avg: 401μs)
-----------------------------------------------------------------------
There is a strange bug in moleculer
Thanks, I will investigate it.
Here are my test results:
Platform info:
==============
Darwin 17.5.0 x64
Node.JS: 10.2.1
V8: 6.6.346.32-node.8
Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz × 4
Suite: Call remote actions
✔ Moleculer* 354 rps
✔ Hemera* 389 rps
✔ Seneca* 243 rps
Moleculer* -9.07% (354 rps) (avg: 2ms)
Hemera* 0% (389 rps) (avg: 2ms)
Seneca* -37.58% (243 rps) (avg: 4ms)
-----------------------------------------------------------------------
I removed the Cote because I feel it is cheationg (does not use NATS) and obscure the actual results comparision, which are the other services using NATS
Why are the benchmarks using nats-hemera instead of just hemera ? is nats-hemera something old ?
Hi nats-hemera
is hemera. The naming shows that hemera can not be used without Nats. Did you consider the latest hemera version (5.6) in your tests?
Hello @StarpTech
Did you consider the latest hemera version (5.6) in your tests?
No I didn't. I just installed the dependencies the repo has and tested. But (before your comment, seems we are aligned) I installed the latest version (5.6.0) and re-tested. Here are the results on the same hardware (ran two times):
Suite: Call remote actions
✔ Moleculer* 290 rps
✔ Hemera* 342 rps
✔ Seneca* 193 rps
Moleculer* -15.4% (290 rps) (avg: 3ms)
Hemera* 0% (342 rps) (avg: 2ms)
Seneca* -43.52% (193 rps) (avg: 5ms)
-----------------------------------------------------------------------
Suite: Call remote actions
✔ Moleculer* 365 rps
✔ Hemera* 393 rps
✔ Seneca* 332 rps
Moleculer* -7.04% (365 rps) (avg: 2ms)
Hemera* 0% (393 rps) (avg: 2ms)
Seneca* -15.41% (332 rps) (avg: 3ms)
-----------------------------------------------------------------------
Quite similar IMO
Yes, LGTM. Thanks.
LGTM ?
On the second view, I noticed that your rps are very low. This must be due to your old hardware 😄 That's my benchmark:
===========================
Microservices benchmark
===========================
Platform info:
==============
Windows_NT 10.0.17134 x64
Node.JS: 9.8.0
V8: 6.2.414.46-node.21
Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz × 4
Suite: Call remote actions
√ Moleculer* 1,529 rps
√ Hemera* 6,044 rps
√ Seneca* 3,037 rps
Moleculer* -74.7% (1,529 rps) (avg: 653μs)
Hemera* 0% (6,044 rps) (avg: 165μs)
Seneca* -49.75% (3,037 rps) (avg: 329μs)
-----------------------------------------------------------------------
Hi, it would be great if you could update the benchmark with Hemera 2.0. I also think that this benchmark has a bug because I can't reproduce the numbers in a very simple benchmark. For me it looks like that the benchmark utility slow down the application. Thanks!
https://github.com/hemerajs/microservice-benchmark.