Yeah, maximum concurrent clients being 50 is nothing and you're already seeing a large gap. That is the whole point of the BEAM - it scales well with concurrent stuff which is important with web in general and very important for LiveView.
50 is the hardware limit, not a personal choice. The code is free and accessible from the article itself. If you can run tests with more, I'd be happy to update the graphs and the conclusion.
this can't be true, If that hardware can run Django and Phoenix, it for sure can handle orders of magnitudes more concurrent clients than 50 even before you start tuning the OS and the runtime.
> Playwright headless Chromium
maybe you mean you're unable to generate more than 50 concurrent clients using Playwright+Chromium - but that's the wrong tool for loadtesting.
Loadtest should run from a different machine or cluster of machines/VMs. You can generate up to ~ 64K outgoing connections per IP address / alias. With 17 IP addresses/aliases you can generate up to C1M.
You're giving me statements and advice without knowing either the hardware I use or the tools.
I don't have the resources to do this kind of massive testing; if you're up for doing it yourself, I'd be happy to update the data.
Your "Concurrency" benchmark ends at 50 concurrent clients. Continue testing at C1K, C10K, C100K, C1M, C2M, etc.
That's for a single node.
Then try multiple nodes / cluster - C1M, C2M, C10M, etc.
Also, all concurrent clients should send periodic pings / keepalives and do something useful (e.g. some CPU work, not just being idle).
Then you'll have to change your conclusion from:
The data answers my original question: yes, Django LiveView holds up against Phoenix LiveView. In day-to-day operations they are practically equal.
to
The data answers my original question: yes, under *toy* load Django LiveView holds up against Phoenix LiveView. For *toy* operations they are practically equal.
Since you seem so knowledgeable about this, why don't you do it yourself? The code is available in the repository. I'm sure you'll do much better than I can.
Comments
It pretends to be serious with 5 tables / charts:
Django LiveView vs Phoenix LiveView: a real benchmark
https://en.andros.dev/blog/80134668/django-liveview-vs-phoen...
Yeah, maximum concurrent clients being 50 is nothing and you're already seeing a large gap. That is the whole point of the BEAM - it scales well with concurrent stuff which is important with web in general and very important for LiveView.
50 is the hardware limit, not a personal choice. The code is free and accessible from the article itself. If you can run tests with more, I'd be happy to update the graphs and the conclusion.
> 50 is the hardware limit
this can't be true, If that hardware can run Django and Phoenix, it for sure can handle orders of magnitudes more concurrent clients than 50 even before you start tuning the OS and the runtime.
> Playwright headless Chromium
maybe you mean you're unable to generate more than 50 concurrent clients using Playwright+Chromium - but that's the wrong tool for loadtesting.
Loadtest should run from a different machine or cluster of machines/VMs. You can generate up to ~ 64K outgoing connections per IP address / alias. With 17 IP addresses/aliases you can generate up to C1M.
You're giving me statements and advice without knowing either the hardware I use or the tools. I don't have the resources to do this kind of massive testing; if you're up for doing it yourself, I'd be happy to update the data.
How would you have approached it?
Your "Concurrency" benchmark ends at 50 concurrent clients. Continue testing at C1K, C10K, C100K, C1M, C2M, etc.
That's for a single node.
Then try multiple nodes / cluster - C1M, C2M, C10M, etc.
Also, all concurrent clients should send periodic pings / keepalives and do something useful (e.g. some CPU work, not just being idle).
Then you'll have to change your conclusion from:
to
Since you seem so knowledgeable about this, why don't you do it yourself? The code is available in the repository. I'm sure you'll do much better than I can.