Pyro通信在同一台主机上速度极慢

时间:2017-02-23 01:45:07

标签: python pyro

我使用Pyro实现了一个非常简单的客户端/服务器应用程序。虽然Pyro tips&tricks建议反对它,但我正在使用服务器将图像发送到客户端(未压缩的,准确的numpy数组)。它不必通过网络,一切都停留在localhost上,所以我不会看到问题。发生的事情是客户端比服务器慢一个数量级,任何想法为什么?

这里是代码:

服务器:

import numpy as np
import time
import Pyro.core

class DataProd(Pyro.core.ObjBase):
    def __init__(self, batch_size):
        print 'Loading data into memory'
        self.all_imgs = np.load('data.npy')
        Pyro.core.ObjBase.__init__(self)

    def get_batch(self, batch_size=32, flip=False):

        print 'getting 1 batch from PYRO'
        s = time.time()
        #process the images
        print time.time()-s
        return images


def main():
    Pyro.core.initServer()
    daemon=Pyro.core.Daemon()
    uri=daemon.connect(DataProd(32),'dataprod')
    print "The daemon runs on port:",daemon.port
    print "The object's uri is:",uri
    print "Starting request loop"
    daemon.requestLoop()

if __name__ == '__main__':
    main()

客户:

import Pyro.core
import time

data = Pyro.core.getProxyForURI("PYROLOC://localhost:7766/dataprod")
while True:
    s = time.time()
    im = data.get_batch(32)
    print time.time()-s

服务器打印:

getting 1 batch from PYRO
0.526908874512
getting 1 batch from PYRO
0.51292014122
getting 1 batch from PYRO
0.523808956146
getting 1 batch from PYRO
0.536481142044
getting 1 batch from PYRO
0.518028974533

客户:

4.93717813492
4.05996489525
3.40680289268
3.79327297211
3.99453115463

为什么两者之间存在1个数量级的差异?除了请求图像之外,客户端不做任何其他事情。

谢谢!

0 个答案:

没有答案