我正在使用本質上是黑盒的設備,並且唯一已知的通信方法是XML-RPC。它適用於大多數需求,除了當我需要非常快速地執行兩個命令之後。由於開銷和等待RPC響應,這並不像期望的那麼快。提高xmlrpclib的速度
我的主要問題是,如何減少這種開銷以使此功能成爲可能?我知道明顯的解決方案是拋棄XML-RPC,但我認爲這種設備不可行,因爲我無法控制從「服務器」實施任何其他協議。這也使得不可能做MultiCall,因爲我不能爲MultiCall添加有效的指令。 MultiCall必須在服務器端實現嗎?例如,如果我有方法1(),方法2()和方法3()全部由服務器實現,那麼這個代碼塊是否可以在一個回覆中執行它們?我從目前的測試中假設沒有,因爲the documentation顯示了我需要在服務器端初始化命令的示例。
server=xmlrpclib.ServerProxy(serverURL)
multicall=xmlrpclib.MultiCall(server)
multicall.method1()
multicall.method2()
mutlicall.method3()
multicall()
而且,通過的xmlrpclib的來源看,我看到了「FastParser」引用而非所使用的默認之一。但是,我無法確定如何在默認情況下啓用此解析器。另外,the comment on this answer提到它一次解析一個字符。我相信這是相關的,但同樣不知道如何改變這個設置。