【问题标题】:Calculate RTT with millisecond in Python 3在 Python 3 中用毫秒计算 RTT
【发布时间】:2023-01-09 01:27:15
【问题描述】:
send_time_ms = time.time()
s.send(smth)
s.send(smth)
data = s.recv(1024)
data = data.decode("utf-8")
recv_time_ms = time.time()
rtt_in_ms = (recv_time_ms - send_time_ms)
print(rtt_in_ms)

我想以毫秒为单位并尽可能准确地测量 RTT 时间。此代码中的输出是一个数字,如“1.34564”。这段代码是否正确,如果为真,是否可以更准确地测量值?

【问题讨论】:

    标签: python python-3.x time rounding


    【解决方案1】:

    考虑使用time.perf_counter

    ... 具有最高可用分辨率的时钟,用于测量短时间。

    我建议使用装饰器。这使逻辑保持不变,也可以轻松地应用于其他功能。

    import time
    import functools
    
    def measure_time(fn):
    
        @functools.wraps(fn)
        def wrapper(*args, **kwargs):
            tic = time.perf_counter()
            fn_result = fn(*args, **kwargs)
            toc = time.perf_counter()
            print(f"{fn.__name__} took {toc - tic} seconds")
            return fn_result
    
        return wrapper
    

    用法:

    @measure_time
    def send_something(target, payload):
        target.send(payload)
        data = target.recv(1024)
        data = data.decode("utf-8")
    

    您可能希望将 print 换成您想要的 logger

    【讨论】:

      猜你喜欢
      • 2010-12-26
      • 2023-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多