ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript オブジェクトのサイズを確認するにはどうすればよいですか?

JavaScript オブジェクトのサイズを確認するにはどうすればよいですか?

DDD
リリース: 2024-11-30 15:50:16
オリジナル
135 人が閲覧しました

How Can I Determine the Size of a JavaScript Object?

JavaScript オブジェクトのサイズの決定:

JavaScript オブジェクトがどのくらいのメモリを消費するか考えたことはありますか?オブジェクトのサイズを理解することは、パフォーマンスを最適化し、メモリ使用量を管理するために重要です。残念ながら、JavaScript には、C や Java の sizeof() 関数のようなオブジェクトのサイズを直接決定する方法がありません。

しかし、roughSizeOfObject 関数に実装された近似メソッドに頼ることができます。この関数は、オブジェクト、そのプロパティ、およびネストされたオブジェクトを走査し、データ型に基づいておおよそのサイズを計算します。

実装:

roughSizeOfObject 関数は深さに従います。オブジェクトを横断するための最初のアプローチ。スタックと訪問済みの配列を使用して、処理中のオブジェクトとすでに説明されているオブジェクトを追跡します。

  1. 訪問したオブジェクトを追跡し、無限再帰を防ぐためにオブジェクト リストを初期化します。
  2. 入力オブジェクトをスタックにプッシュします。
  3. スタックが空でない間に:
    a.スタックから値をポップします。
    b.値のタイプに基づいて、バイト数を適宜増やします (ブール値の場合は 4 バイト、文字列の場合は 1 文字あたり 2 バイト、数値の場合は 8 バイト)。
    c.値がオブジェクトであり、まだ訪問済みリストにない場合は、それをリストに追加し、そのプロパティをスタックにプッシュします。
  4. 最終的なバイト数は、オブジェクトのサイズの近似値を表します。

使用例:

次のように考えます。オブジェクト:

var stud = new Student();
ログイン後にコピー

プロパティ:

firstName: "firstName";
lastName: "lastName";
marks: new Marks();
ログイン後にコピー

次を呼び出すことで、このオブジェクトのサイズの推定値を取得できます:

const size = roughSizeOfObject(stud);
ログイン後にコピー

サイズ変数は、スタッド オブジェクトのおおよそのバイト数 (そのプロパティとネストされたものを含む) が含まれます。

制限:

このメソッドは適切なサイズ推定を提供しますが、次のような制限があります:

  • オブジェクトのオーバーヘッドは無視されます。メモリ使用量に影響を与える可能性のあるオブジェクト参照やその他の実装の詳細。
  • すべてのデータ型を正確に考慮しているわけではありません。

これらの制限にもかかわらず、roughSizeOfObject は、JavaScript オブジェクトのサイズを概算し、アプリケーションのメモリ消費を監視するための便利なツールであり続けます。

以上がJavaScript オブジェクトのサイズを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート