I’ve used a Web 2 app to serve 80 simultaneous users, and it worked fine - CPU usage rarely got over 50%, on a 2012 mac mini / core i7. This app was fairly simple - giving multiple choice tests, allowing file uploads, etc.
There are some known issues with listbox performance, so it’s hard to say. I think from my experience, the answer is “maybe”.
Every instance you run is going to support X number of users. The problem is that nobody knows what X is. A simple app might support 50-100 users but a complicated app might start slowing down at 10-20 simultaneous users. Once you figure out X, then you can scale it by running multiple instances on a multi-core server. If you have several hundred, I would start with 2 instances and see how it goes. It might work fine or you might have to add more instances to get good performance.
If you expect to have several hundreds simultaneous user, then this is the egde where Xojo stops being the right tool for your usecase.
We’ve done some test and one very simple app can handle about 100 user at a time without to much pain. Because a Xojo app runs on a single core, your CPU doesn’t matter so much.
We solved this issue by spawning multiple app instances. But to achieve a solid and reliable structure like this, you need experience and time.
Time you could spend developing this specific app in another language probably.
Thanks all for your input. Good to know others have apps working around the 50-100 simultaneous user count. I’ll start looking at Web 2.0 in greater depth as so far my experience of Xojo Web in production has been Web 1.0.
@Tim_Parnell - great plug of Lifeboat! I’ll be sure to look at it once the app is ready.
If you have multiple computers you can use the Super Simple Sync feature in conjunction with your favorite cloud sync folder (Dropbox, OneDrive) to ensure your configurations are available across devices.
I don’t want to derail this thread, so if you need any help or have questions please feel free to reach out to me directly for one on one support.
From my experience, Web 2.0 is a big step up from 1.0. We had an application on 1.0 that we have since completely migrated to 2.0. Of course, a lot has changed and perhaps there is a little more work involved in one place or another. But Web 2.0 also offers many more possibilities, active development and, in our experience, noticeably better performance (especially with 2021 R3).
The current problems with R3 are now known at Xojo and I assume that they are actively working on a solution.
I have applications built with 2019 R3.1. Unless I have a compelling reason to make significant changes, they will remain Web 1.0 on 2019 R3.1.
I am doing new developments on Web 2.0. Early releases were not really usable, but more recent versions are much much improved. I was generally favorably impressed with 2021 R3. And I expect (it is always dangerous to make such assumptions, but here it goes…) that the disconnection issue will be fixed in a point release soon.
I use listboxes for display purposes, and GraffitiSuite webgrids where I want easy data editing. I use webcontainers, often several on a page. Now, in most cases, the listboxes are limited in function. I use an underlying class or array, where most operations (database queries, updates, etc.) are done.