multithreading - 如何使用pyzmq快速传输 python 字典和列表上的列表?

  显示原文与译文双语对照的内容

我使用了 in/in TCP套接字来在应用程序的线程之间进行通信,以便将线程从线程转移到多台机器。

我经常发送大量的dicts清单。 所谓large是lists到数十万 dicts dicts由小于5 个字符的键字符串组成,并且值的字符串小于个字符,一个日期对象。

My的问题是,由和recv_pyobj完成的酸洗是非常的CPU和时间,这是一个无法正常工作的程度。

目前我最好的理解是,这是序列化问题,而不是传输协议问题,因此从TCP切换到IPC或者inproc不应该有任何明显的。

时间: 作者:

就像在文档中所指出的,与 send_pyobjrecv_pyobj 有关:

为了便于性能而设计的这些方法,因这里开发人员应该使用他们的序列化发送/接收方法。

看看如何创建自己的序列化方法。

你可能还可以通过批处理( 如果你不真正需要 ,那么在开始处理之前,需要对数据进行所有的处理) 发送数据。 当序列化同时发生与de序列化相同的序列化时,发送批处理也会提高性能。

...