【问题标题】:Measuring the speed of an RPC client-server network测量 RPC 客户端-服务器网络的速度
【发布时间】:2020-01-22 22:24:02
【问题描述】:

下面的代码是客户端和服务器网络之间的简单通信,用于确定消息是偶数还是奇数。如何测量请求和响应之间的速度?我不确定我的代码是否准确测量它。

import xmlrpclib 
import time  

start = time.time()
proxy = xmlrpclib.ServerProxy("http://localhost:8000/")#manages communication with a remote XML-RPC server.
end = time.time()

#measures speed
elapsed = end - start
print "The elapse time is ", elapsed 

#the proxy variable connects to the server  and recives the result of whether the message is even or odd 
print "3 is even: %s" % str(proxy.is_even(3))
print "100 is even: %s" % str(proxy.is_even(100))


import xmlrpclib 
from SimpleXMLRPCServer import SimpleXMLRPCServer 

def is_even(n):  #determines if a number is even or odd
    return n % 2 == 0

server = SimpleXMLRPCServer(("localhost", 8000)) # Creates server
print "Listening on port 8000..."
server.register_function(is_even, "is_even") # respond to XML-RPC requests
server.serve_forever()  #Handle one request at a time until shutdown.

【问题讨论】:

  • 你不是已经用“经过的时间”来测量速度了吗?您还需要什么其他类型的速度测量?您可以使用start = time.time(); print("Took:", time.time()-start),这就是花在请求上的总时间。
  • 感谢您的回复。如何将速度的输出以更好的字符串格式输出?
  • 首先切换到Python3。 Python2 将在短短几个月内结束生命。其次,你可以做print(f"Total speed (in seconds): {time.time()-start}")

标签: python networking rpc


【解决方案1】:

您忘记测量实际 RPC 的时间。围绕is_evenis_odd 调用而不是ServerProxy 构造进行测量。

您可能还想使用不同的时钟。 time.time 是系统挂钟时间。相反,POSIX_MONOTONIC 时钟将保护您免受 ntp 时钟偏移等问题的影响。

【讨论】:

  • 你好,你能举个例子吗?还有什么是ntp skewing?
猜你喜欢
  • 1970-01-01
  • 2012-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-30
  • 1970-01-01
  • 2011-02-10
  • 1970-01-01
相关资源
最近更新 更多