快速测试显示cPickle(Python 3.6.9 SELECT carmake,MAX( carsaleprice ) AS HighestPrice,MIN( carsaleprice ) AS LowestPrice,RANK() OVER ( ORDER BY MAX( carsaleprice ) DESC ) AS "RANK"
FROM cars
GROUP BY carmake
ORDER BY HighestPrice
defaults to using cPickle)与GIL接合。
import pickle
对运行序列化操作的4个线程的测试以100%cpu运行,例如它参与了GIL。运行numpy操作的同一类型的测试使用400%cpu(numpy没有使用GIL)。
我希望cPickle作为C函数,不会参与GIL。有没有办法解决?我希望能够反序列化大量数据而不会阻塞主进程。
我正在尝试每秒从辅助进程中提取3GB的数据回主服务器。我可以使用流套接字和异步以4GB /秒的速度移动数据,但是反序列化是一个瓶颈。 I don't have the luxury of Python 3.8和SharedMemory仍然很不幸。
当然,可以接受的答案是自信的答案。