Hi, yesterday I was doing an experiment to see how fast would it be to uwsgi spawn 1000 workers with my app loaded, it took ~2s but 1.5GB of RAM, then instead of 1000 process I started 1 process and 1000 threads, namely my plugin will instantiate 1000 QThreads, and memory usage was 300MB now I got surprised of this, so I wrote an application that would load my app like uwsgi and fork 1000, granted this app doesn't have any protocols handling, and forking 1000 used 300MB as using threads did.
uwsgi process here is of 800KB of size and my test app was of 100KB, which is aproximately the difference. Now I wonder why is uwsgi so big? Can it's protocols be split in plugins loaded at runtime to reduce this? It even seemed that share libraries didn't add up to free due shared nature, maybe it would be useful if uwsgi had a shared library, to possibily share among process. Or even is there something different about how uwsgi forks()? maybe explicity sharing less if that's even possible? Note that I dunno which build options Debian used to uwsgi, maybe it's possible to compile with reduced size or maybe it would just be better if it had it's code split into plugins. Best, -- Daniel Nicoletti KDE Developer - http://dantti.wordpress.com _______________________________________________ uWSGI mailing list [email protected] http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi
