簡體   English   中英

Windows 7中使用XML-RPC.NET的XML-RPC變慢

[英]Slow XML-RPC in Windows 7 with XML-RPC.NET

我正在考慮使用XML-RPC.NET與用Python編寫的Linux XML-RPC服務器進行通信。 我已經嘗試了Cook Computing的XML-RPC.NET中的示例應用程序(MathApp),但是該應用程序花了30秒的時間在與服務器相同的LAN中添加了兩個數字。

我還嘗試在Windows 7上運行一個用Python編寫的簡單客戶端來調用同一台服務器,並且它在5秒內響應。 該計算機具有4 GB的RAM,具有可比的處理能力,因此這不是問題。

然后,我嘗試從帶有Java和PHP的Windows XP系統中調用服務器。 兩種響應都非常快,幾乎是立即進行的。 服務器也在本地主機上也快速響應,因此我認為延遲不是源於服務器。

我的Google搜索使我對Windows使用IPv6遇到了一些問題,但我們對服務器的調用的確在同一子網中包含IPv4地址(而非主機名)。 無論如何,我關閉了IPv6,但沒有任何改變。

還有其他方法檢查延遲的可能原因嗎?

一個會影響BaseHTTPServer及其子類(包括SimpleXMLRPCServer )的錯誤。 基本上,您的服務器可能會針對要嘗試記錄的每個IP地址調用socket.getfqdn函數。 本文可能會更好地解釋它。

解決方法在此處針對TL; DR描述:

import BaseHTTPServer
def not_insane_address_string(self):
    host, port = self.client_address[:2]
    return '%s (no getfqdn)' % host #used to call: socket.getfqdn(host)
BaseHTTPServer.BaseHTTPRequestHandler.address_string = \
    not_insane_address_string

在客戶端計算機上運行數據包捕獲,檢查網絡流量計時與調用該函數的時間。

這可以幫助您確定延遲在緩慢的過程中的位置,例如,應用程序啟動時間,名稱解析等。

您如何從客戶端尋址服務器? 通過IP? 通過FQDN? 您使用的每個應用程序中的尋址方法是否相同?

如果您從同一個運行緩慢的應用程序多次調用同一個遠程過程,那么花費的時間是否會線性增加?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM