Comments (3)
Check out https://github.com/hashrocket/websocket-shootout/tree/master/results for the raw results including details on the server hardware. It's been a while since I was working on it, but at least in the second round of testing, node was run in a cluster. IIRC, for the highest performance servers performances were bound more by network and OS than CPU usage, so some platforms really didn't gain much by using multi-threading or multi-processing.
from websocket-shootout.
I might be misunderstanding what you are asking, but I'll try to answer.
The test sends a broadcasts to all connected clients, so assuming it was able to maintain the same broadcast rate, messages per second would grow linearly with number of clients. But in practice it wouldn't be able to maintain the same broadcast rate. That's part of what the benchmark was examining -- how many clients can be subscribed and still have acceptable latency at a given broadcast rate.
A better way of thinking about it may be number of messages sent vs. number of of connected clients is in terms of how many messages are sent for each test group (e.g. 10,000 clients) That number will grow linearly (e.g. A test run will send 2x as many messages at 20,000 clients as 10,000 -- even though it may take longer to do so.)
from websocket-shootout.
Thanks, that was exactly what I wanted to know. So every new client is not communicating wit very old client, but only with the server.
I was just impressed that node was able to handle 13k clients with single thread and really small memory footprint while e.g. elixir and go handled only like 24k clients with 8 hardware threads. I still don't understand how is that possible that node would perform 2-4x better (13k each thread) if one would spawn just 8 processes and add load-balancer to front to handle messaging (I know having 8 processes which handles just their own slice of connections is not the same, but it is interesting anyways)...
Would have been nice to have also numbers about how much resources of the hardware was used (in addition to memory also network and CPU) on each server implementation when running max clients.
from websocket-shootout.
Related Issues (18)
- Node cluster HOT 1
- Rust benchmark results HOT 3
- C++ not compiled with optimizations? HOT 1
- JSON and the C++ benchmark HOT 3
- Document build dependencies HOT 2
- node uws version doesn't work
- cpp uWebSockets impl is single threaded HOT 1
- Logo for this project HOT 3
- Update ยตWS (0.10.9) HOT 6
- Criticism of the benchmarkings HOT 6
- Error in actioncable benchmark HOT 1
- Questions about JavaScript in Round 2 HOT 4
- Rust Suggestion
- JVM settings for Clojure HOT 1
- Need RAM usage too..
- Use cluster for Nodejs to use multiple cores
- Other options for Go HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from websocket-shootout.