次に詰まる所
余裕を倍率で見る
いまの構成で次に限界が来るのはどこか、を出します。
見るのは残りの数ではなく、いまの何倍まで耐えられるかです。
保存先が接続50本を使っていて上限が100本なら、余裕は2倍です。アプリが100 QPS で上限400なら4倍です。
Python
# database 50 / 100 → 2倍
# app 100 / 400 → 4倍単位が違うものを比べられません。50本と300件のどちらが危ないかは、そのままでは言えません。
倍率にすると単位が消えます。2倍と4倍なら、先に詰まるのは2倍のほうだと言えます。
見つけた所を直すと、次が出る
一番低い所を直すと、次に低かった所が一番低くなります。
順番に並べておくと、直したあと何が来るかが先に分かります。1つ直して終わりにはなりません。
詰まる場所が予測できなくなるので、逆に困ります。
わざと1か所だけ低くしておくという手もあります。どこが先に音を上げるかが分かっていれば、そこだけ見ていればよくなります。
揃えるのが目的ではなく、次がどこかを言えるのが目的です。
演習
部品ごとのいまの負荷と上限、これから何倍になるかを受け取り、次に詰まる所を返します。
要件
- 余裕の倍率は capacity ÷ current の整数部分。current が0以下なら倍率は None で、順番の最後にまわす
- order は倍率の小さい順、同じなら名前の昇順。倍率が None のものは最後に名前の昇順で並べる
- next と headroom は倍率が一番小さい部品の名前と倍率。will_break には倍率が growth より小さい部品を order と同じ並びで入れる
ヒント
編集 ゆめさく編集部