システムの単一のサブコンポーネントのパフォーマンスが x% 向上すると、システム全体の全体的なパフォーマンスが Ax% (A>1) 向上するシステムの例を誰か提供できますか? 言い換えれば、システム内の局所的な最適化に正の乗数効果があり得るでしょうか?
私は過去にそのようなパフォーマンス乗数効果に遭遇したと断言できたかもしれませんが、私の人生では、そのような場合の仮説的な例を構築することさえできません.
システムの単一のサブコンポーネントのパフォーマンスが x% 向上すると、システム全体の全体的なパフォーマンスが Ax% (A>1) 向上するシステムの例を誰か提供できますか? 言い換えれば、システム内の局所的な最適化に正の乗数効果があり得るでしょうか?
私は過去にそのようなパフォーマンス乗数効果に遭遇したと断言できたかもしれませんが、私の人生では、そのような場合の仮説的な例を構築することさえできません.
私が知っている唯一のソフトウェア パフォーマンスの乗数効果 (別のハードウェアなし) は、アムダールの法則を利用することです。(少年、それはかなり深いです。)ソフトウェアがかかる時間を分数Xだけ減らすと、R = 1 /(1-X)の速度向上率が得られます。たとえば、プログラムに 100 秒かかり、60 秒短縮できた場合、40 秒かかることになります。これは、100/40 = 2.5 倍の速さです。
X と R の関係は次のとおりです。
X R
0.0 1
0.1 1.11..
0.2 1.25
0.3 1.43..
0.4 1.66..
0.5 2
0.6 2.5
0.7 3.33..
0.8 5
0.9 10
0.99 100
1.0 inf
また、これらの効果は複合します。時間を 50% 減らすと、速度は 2 倍になります。その結果を取り、その時間を 50% 減らすと、速度はさらに 2 倍になります。
2 番目の 50% は、元の時間のわずか 25% であることに注意してください。最初の縮小により、2 番目の縮小が 2 倍大きくなりました。
これは、その速度を倍増させる拡大効果が 730 倍の速度アップを生み出した例です。
私が考えることができる唯一の例は、ある種の厳しいリアルタイム制約があるシステムです。たとえば、サブコンポーネントの実行に時間がかかりすぎて、タイムアウトになり、ある種の I/O で再試行されます。インターフェース。サブコンポーネントのパフォーマンスを向上させると、タイムアウトと再試行を回避するのに十分な速度になり、全体的なパフォーマンスが大幅に向上します。現実世界の例として思いつくのは、古い学校のディスク コントローラー (キャッシュなどの時代以前) とネットワーク インターフェイス (タイムアウトによりパケットが再送信されるなど) です。