完成120个用4秒吞吐多少
按模型,throughput(120, 4) 交回几?
贯穿本节的并发模型(判题机 0.25 核有 GIL、答案不靠时序,这是它的确定模型,见 spine.py):高并发服务器搭起来后要选架构、加锁护状态、连接池/队列、压测、测吞吐延迟、定位竞争。
吞吐/延迟:throughput(完成, 秒)=每秒完成、error_rate(错, 总)=错误率、percentile(已排序延迟, p)=分位、avg=平均延迟。
def throughput(done, secs):
"""吞吐:每秒完成多少请求。"""
return done // secs
def error_rate(errs, total):
"""错误率(百分比整数)。"""
return errs * 100 // total
def percentile(ms_sorted, p):
"""已排序延迟列表的第 p 百分位。"""
return ms_sorted[(len(ms_sorted) - 1) * p // 100]
def avg(ms):
"""平均延迟(整数)。"""
return sum(ms) // len(ms)
print(throughput(120, 4))
全部评论