1. ホーム
  2. javascript

[解決済み] ページのメモリ使用量を調べるためのjQueryまたはjavascript

2022-11-19 02:37:08

質問

Web ページや jquery アプリケーションで使用されているメモリの量を調べる方法はありますか?

以下は私の状況です。

私は、JSONでデータを提供するjqueryフロントエンドとrestfulバックエンドを使用して、データ量の多いWebアプリケーションを構築しています。 ページは一度ロードされ、その後、すべてはajaxを介して行われます。

UI はユーザーに UI 内に複数のタブを作成する方法を提供し、各タブはたくさんのデータを含むことができます。作成できるタブの数を制限することを検討していますが、メモリ使用量がある閾値を超えた場合にのみ制限するのが良いと考えていました。

回答に基づいて、私はいくつかの明確化を行いたいと思います。

  • 私のアプリケーションがユーザーのブラウザーのメモリ使用量に基づいてアクションを決定できるように、ランタイムのソリューション (開発者ツールだけではなく) を探しています。
  • DOM 要素またはドキュメント サイズを数えることは良い推定かもしれませんが、イベント バインディング、data()、プラグイン、およびその他のインメモリ データ構造を含まないため、非常に不正確である可能性があります。

どのように解決するのですか?

2015年最新情報

2012年当時は、使用されているすべての主要なブラウザをサポートしたい場合、これは不可能でした。残念ながら、今現在はまだ Chrome のみ の機能です (非標準の拡張機能である window.performance ).

window.performance.memory

ブラウザのサポート Chrome 6 以上


2012年の回答

<ブロッククオート

Webページまたは私のjqueryアプリケーションによって使用されているメモリの量を調べる方法はありますか?私のアプリケーションがユーザーのブラウザのメモリ使用量に基づいてアクションを決定できるように、(開発者ツールだけでなく)ランタイムのソリューションを探しています。

シンプルですが正しい答えは ではありません。 . すべてのブラウザーがそのようなデータを公開しているわけではありません。そして、私は、単に複雑で不正確な "handmade" の複雑さと不正確さが、解決するよりも多くの問題を引き起こす可能性があるからです。

<ブロッククオート

DOM 要素またはドキュメント サイズを数えることは良い推定かもしれませんが、イベント バインディング、data()、プラグイン、およびその他のインメモリ データ構造を含まないため、非常に不正確である可能性があります。

もしあなたが本当に自分の考えに固執したいのであれば、固定コンテンツと動的コンテンツを分けるべきです。

固定コンテンツはユーザーの操作に依存しない(スクリプトファイルやプラグインなどで使用されるメモリ)。

それ以外はすべて動的と見なされ、制限を決定する際に主な焦点となるべきです。

しかし、それらを簡単にまとめる方法はありません。を実装すればいいのです。 トラッキング システムを実装することができます。すべての操作は、適切なトラッキングメソッドを呼び出す必要があります。

ラップまたはオーバーライト jQuery.data メソッドで トラッキング システムに通知します。

コンテンツの追加や削除も追跡できるように、html操作をラップする ( innerHTML.length が最良の推定値です)。

大きなインメモリオブジェクトを保持している場合、それらも監視する必要があります。

イベントバインディングについては イベントデレゲーション とすると、ある程度固定された要素とも考えられます。

メモリ要件を正しく見積もることを難しくしているもうひとつの側面は、異なるブラウザが異なるメモリを割り当てる可能性があるということです (JavascriptオブジェクトとDOM要素に対して)。