今日のCPUは2005年のマシンよりも100倍も高速です。それなのに、ワープロソフトを開くのに数秒かかり、ブラウザは依然として数GBのRAMを消費しています。一体何が起きたのでしょうか?
資源が安ければ、人々は浪費してしまう
RAMが高価なときは、プログラマーは1バイト単位で計算する。RAMが安くなると、メモリの最適化は新機能の開発に比べて割に合わないものになる。これは各チームにとって合理的な経済的な選択だが、それが積み重なるとソフトウェアが肥大化してしまう。
重なり合う多くの抽象化の層
現代的なデスクトップアプリケーションとは、例えば次のようなものです。ブラウザ内で動作する簡素化されたWebインターフェースが、JavaScriptランタイムと共にパッケージ化され、ネイティブライブラリを呼び出し、その後にOSにアクセスするといった構造です。各レイヤーには存在理由があります――通常は、開発者が一度コードを書けば複数のプラットフォームで実行できるようにするためですが――各レイヤーがそれぞれリソースを消費しています。
非難する前に確認する
「もっさり感」は、通常、スループットではなく遅延に起因します。ユーザーは計算に時間がかかることには耐えられますが、ボタンを押した際にインターフェースが半秒ほど反応しなくなることは非常に嫌がります。
- 100ms未満 — 瞬時の反応
- 約1秒 — スムーズではあるが、待ち時間が感じられる
- 10秒以上 — ユーザーは離れて他の作業に移る
あなたにできること
ユーザーの方へ:日常業務にはコンパクトなツールを選び、月に1回しか開かないようなソフトウェアはバックグラウンドで実行させないようにしましょう。ソフトウェア開発者の方へ:ユーザーが最も頻繁に繰り返す操作における遅延を測定し、その部分だけを最適化し、それ以外の部分はそのままにしておきましょう。
Thảo luận