【问题标题】:Python's xmlrpc extremely slow: one second per callPython 的 xmlrpc 非常慢:每次调用一秒钟
【发布时间】:2013-01-08 09:25:03
【问题描述】:

根据 Python 文档中的示例,我使用 SimpleXMLRPCServer 在 Python 中构建了一个 xml-rpc 服务器。我从同一台机器上的 Python 客户端调用它。服务器函数的主体自行执行非常快。

但我发现 xmlrpc 客户端的性能非常缓慢,每次调用需要一秒钟。 (使用 xmlrpclib。)

我在网上找到的加速技术 (skipping the getfqdn resolution) 没有帮助。

我的连接 URI 是:

'http://localhost:50080'

我在 Windows 7 上运行 Python 2.7 x64,但它在 32 位 Python 2.7 上运行相同。

【问题讨论】:

    标签: python xml-rpc xmlrpclib simplexmlrpcserver


    【解决方案1】:

    问题似乎在于客户端解析 localhost

    新的(快速)连接 URI:

    'http://127.0.0.1:50080'
    

    同样,在hosts文件%SystemRoot%\System32\drivers\etc\hosts中加入这一行,效果基本相同:

    127.0.0.1 本地主机

    这些更改都将速度从 1 次调用/秒提高到 88 次调用/秒,并且跳过 getfqdn 解析可能会稍微加快速度。容量不是很大,但我的应用程序可以接受。

    更正:新的性能不是 88 次调用/秒,而是 ~1000 次调用/秒。

    【讨论】:

    • 可以确认。使用 PyMols xmlrpc 服务器遇到了这个问题,它非常非常慢。 Hosts 文件中注释了 127.0.0.1 localhost 行。只需取消注释即可解决问题。太好了!
    • 注意:使用本地主机可能是危险的。如果某些系统管理员在某些 DNS 服务器中粘贴“localhost.yourdomain.com”,那么您的所有程序都会停止工作。我更喜欢 127.0.0.1 ... 直接。
    猜你喜欢
    • 2014-02-15
    • 2013-07-08
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-24
    • 1970-01-01
    相关资源
    最近更新 更多