优化前后的加速比

👁️ 2 人浏览 💬 0 人评论 ❤️ 添加收藏

按模型,优化前 90、优化后 30,speedup(90, 30) 交回几?

贯穿本节的并发模型(判题机 0.25 核有 GIL、答案不靠时序,这是它的确定模型,见 spine.py):高并发服务器搭起来后要选架构、加锁护状态、连接池/队列、压测、测吞吐延迟、定位竞争。

定位竞争:bottleneck(等待表)=等最久的资源、n_contended(等待表, 阈值)=热点数、speedup(前, 后)=加速比、worth_optimizing=有没有更快。

def bottleneck(waits):
    """waits: {资源: 等待时长};交回等最久的那个资源。"""
    best = None
    for k in waits:
        if best is None or waits[k] > waits[best]:
            best = k
    return best


def n_contended(waits, threshold):
    """等待超过阈值的资源有几个(竞争热点)。"""
    return sum(1 for k in waits if waits[k] > threshold)


def speedup(before, after):
    """优化前后的加速比(整数)。"""
    return before // after


def worth_optimizing(before, after):
    """优化后更快了吗。"""
    return after < before

print(speedup(90, 30))
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论