Hi,
as an user, the "lua use case" is right what I need at work.
I realize that for python this is a niche case, and most users don't
need any of this, but I hope it will useful to understand why having
multiple independent interpreters in a single process can be an
essential feature.
The company I work for develop and sells a big C++ financial system with
python embedded, providing critical flexibility to our customers.
Python is used as a scripting language, with most cases having C++
calling a python script itself calling other C++ functions.
Most of the times those scripts are in workloads I/O bound or where the
time spent in python is negligible.
But some workloads are really cpu bound and those tend to become
GIL-bound, even with massive use of C++ helpers; some to the point that
GIL-contention makes up over 80% of running time, instead of 1-5%.
And every time our customers upgrade their server, they buy machines
with more cores and the contention problem worsens.
Obviously, our use case calls for per-thread separate interpreters:
server processes run continuously and already consume gigabytes of RAM,
so startup time or increased memory consumption are not issues. Shared
state also is not needed, actually we try to avoid it as much as possible.
In the end, removing process-global state is extremely interesting for us.
Thank you,
Riccardo
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at
https://mail.python.org/archives/list/python-dev@python.org/message/D6OSXZ7B6IAFPZN5VMZ6AEIWRPVO55I4/
Code of Conduct: http://python.org/psf/codeofconduct/