Python MITMProxy表现不佳

Python MITMProxy表现不佳,python,http,networking,proxy,request,Python,Http,Networking,Proxy,Request,在Python中使用MITMProxy时,我们看到性能非常差。我们使用请求Python库定制转发请求 我们的程序使用MITMProxy上的脚本模式,根据客户端的请求创建自定义请求,然后返回响应。因此,基本上,对于向代理发出的每个请求,都会使用请求构建一个新的请求对象,然后转发,然后返回 在使用MITMProxy转发请求时,如何提高其性能?我不久前与Juan解决了这个问题,但最近收到了类似的问题,让我将解决方案留在这里以供参考: mitmproxy有一个单流原语,所以当一个内联脚本处理某个内容时,

在Python中使用MITMProxy时,我们看到性能非常差。我们使用
请求
Python库定制转发请求

我们的程序使用MITMProxy上的脚本模式,根据客户端的请求创建自定义请求,然后返回响应。因此,基本上,对于向代理发出的每个请求,都会使用
请求构建一个新的请求对象,然后转发,然后返回


在使用MITMProxy转发请求时,如何提高其性能?

我不久前与Juan解决了这个问题,但最近收到了类似的问题,让我将解决方案留在这里以供参考:

mitmproxy有一个单流原语,所以当一个内联脚本处理某个内容时,其他请求会被阻塞。脚本可以通过使用
libmproxy.script.concurrent
decorator线程化运行。有关更多详细信息,请查看


(完全公开:我编写了此功能)

如果不知道您现在的性能以及您期望的性能,很难回答这个问题。此外,您似乎暗示性能问题在MITMProxy中。您做了什么来证实这一点(例如,尝试使用已知高性能的最小负载生成器,以排除您的代码或正在使用的库中的缓慢)。这里的“性能”衡量标准是什么(我猜是响应时间)?MITMProxy并不是为了提供高性能的解决方案。事实上,继续阅读MITMProxy的工作原理(),你会发现为什么期待MITMProxy的高性能是不公平的。MITMProxy可以在内部发出多个请求(特别是https流量),您似乎在这上面添加了另一个请求对象层。文档说:请注意,这通常会打开竞争条件的大门,如果不需要,会降低性能。