On Thu, May 7, 2020 at 2:50 AM Emily Bowman <silverback...@gmail.com> wrote: > While large object copies are fairly fast -- I wouldn't say trivial, a > gigabyte copy will introduce noticeable lag when processing enough of them -- > the flip side of having large objects is that you want to avoid having so > many copies that you run into memory pressure and the dreaded swapping. A > multiprocessing engine that's fully parallel, every fork takes chunks of data > and does everything needed to them won't gain much from zero-copy as long as > memory limits aren't hit. But a pipeline of processing would involve many > copies, especially if you have a central dispatch thread that passes things > from stage to stage. This is a big deal where stages may take longer or > slower at any time, especially in low-latency applications, like video > conferencing, where dispatch needs the flexibility to skip steps or add extra > workers to shove a frame out the door, and using signals to interact with > separate processes to tell them to do so is more latency and overhead. > > Not that I'm recommending someone go out and make a pure Python > videoconferencing unit right now, but it's a use case I'm familiar with. > (Since I use Python to test new ideas before converting them into C++.)
Thanks for the insight, Emily (and everyone else). It's really helpful to get many different expert perspectives on the matter. I am definitely not an expert on big-data/high-performance use cases so, personally, I rely on folks like Nathaniel, Travis Oliphant, and yourself. The more, the better. :) Again, thanks! -eric _______________________________________________ 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/5KA262LMVS3IBXUZQD6VJ5IQTZOSMR5U/ Code of Conduct: http://python.org/psf/codeofconduct/