GMail アカウントにログインし (Ubuntu 14.04 64 ビット経由で Firefox 31.0 を使用)、その Web ページをデスクトップに保存すると、ファイル サイズは 1.3 MB になります。
しかし、GMail にログインする前とログインした後の Firefox の RAM 消費量を見てみると、GMail によって RAM 消費量が 200 MB 以上も増加していることがわかります。
Firefox をセーフ モード (プラグイン/拡張機能を無効にする) で実行している場合でも、GMail にログインすると RAM 消費量が大幅に増加します。
確かに、舞台裏では、GMail Web アプリケーションが 200 MB を超えるデータを瞬時にダウンロードしてキャッシュしたわけではありません。
以前のセッションで使用されていたローカル キャッシュをバッファリングしているのではないかと考えましたが、別の Web ブラウザー (これまで GMail にログインしたことのないブラウザー) を使用したところ、GMail にログインした後、そのブラウザーでも RAM が大幅に多く使用されました。
1.3MB の Web ページにログインするたびに、200MB を超える RAM が消費されるのはなぜでしょうか?
この Web サイトが実際に表示するデータ量の 200 倍 (RAM 内) を消費する原因は、どのような非効率性またはキャッシュ戦略にあるのでしょうか。
答え1
Gmail の Web ページは、タイマーなどによりバックグラウンドで多数のスクリプトを実行しています。これらは動作時にメモリを消費します。「保存」されたコピーには、これらのスクリプト (少なくとも動作/実行状態では) とメモリ内の関連オブジェクトは含まれません。
メモリ プロファイラー (ほとんどの最新ブラウザの開発ツールに組み込まれています) を使用すると、実際にメモリを使用しているものを確認できます。
「アイドル」状態のGmailページのスナップショットを撮ると、136,441メモリにロードされたオブジェクト。
これらのオブジェクトは、オブジェクトに応じて、32 バイトのメモリから数キロバイト、最大 4 メガバイトを超えるメモリまでの範囲にわたります。
また、ブラウザが実際にページをレンダリングするために使用するメモリはこれに含まれません。
- おそらく、「基本HTML」バージョン、使用すべき多くのメモリが少ない。https://mail.google.com/mail/?ui=html。