Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何调试多进程设置中滥用threading.lock的情况?_Python_Performance_Debugging_Locking_Multiprocessing - Fatal编程技术网

Python 如何调试多进程设置中滥用threading.lock的情况?

Python 如何调试多进程设置中滥用threading.lock的情况?,python,performance,debugging,locking,multiprocessing,Python,Performance,Debugging,Locking,Multiprocessing,我正在优化一个内容管道,在尝试多处理时,我有一个不好的惊喜:运行时间翻了一番,使用runsnake,我意识到90%的时间都花在threading.lock上 我认为一些资源是跨进程共享的(我怀疑sqlalchemy对象),我想检查一下这个假设。但我不知道怎么做。您知道如何检查吗?您是在使用多个进程,还是在使用多个线程?或者,如果两者都使用,如何组合它们?我使用应用程序顶层多处理中的pool.map。这一层下不应该有线程,但我不能确定:我在这里的部分职责是将代码库放回正确的轨道。我怀疑至少有一个(

我正在优化一个内容管道,在尝试多处理时,我有一个不好的惊喜:运行时间翻了一番,使用runsnake,我意识到90%的时间都花在threading.lock上


我认为一些资源是跨进程共享的(我怀疑sqlalchemy对象),我想检查一下这个假设。但我不知道怎么做。您知道如何检查吗?

您是在使用多个进程,还是在使用多个线程?或者,如果两者都使用,如何组合它们?我使用应用程序顶层多处理中的pool.map。这一层下不应该有线程,但我不能确定:我在这里的部分职责是将代码库放回正确的轨道。我怀疑至少有一个(因此是奇怪的分析),但我不知道如何确定哪个模块使用它们。