ホームページ  >  記事  >  ヒープとスタックの違いは何ですか

ヒープとスタックの違いは何ですか

青灯夜游
青灯夜游オリジナル
2019-05-05 13:10:02114793ブラウズ

ヒープとスタックの違いは、1. 領域割り当ての違い、2. キャッシュ方法の違い、3. データ構造の違いです。通常、ヒープ領域はプログラマによって割り当ておよび解放され、スタック領域はオペレーティング システム (コンパイラ) によって自動的に割り当ておよび解放されます。スタックは 1 レベル キャッシュを使用し、ヒープは 2 レベル キャッシュを使用します。

ヒープとスタックの違いは何ですか

#ヒープとスタックの違いは何ですか

1. スタック領域の割り当ての違い

スタック (オペレーティング システム): オペレーティング システム (コンパイラ) によって自動的に割り当ておよび解放され、関数パラメータ値、ローカル変数値などが保存されます。データ構造内のスタックのように動作します。

ヒープ (オペレーティング システム): 通常、プログラマによって割り当ておよび解放されます。プログラマが解放しない場合、プログラム終了時に OS によって再利用される場合があります。割り当て方法はリンク リストに似ています。

2. スタック キャッシュ メソッドの違い

スタックは 1 次キャッシュを使用します。通常、キャッシュは呼び出されたときにストレージ領域にあり、呼び出された直後に解放されます。通話が完了します。

ヒープは 2 次キャッシュに格納され、ライフサイクルは仮想マシンのガベージ コレクション アルゴリズムによって決定されます (孤立オブジェクトになった後はリサイクルできるわけではありません)。したがって、これらのオブジェクトを呼び出す速度は比較的遅くなります。

3. スタック データ構造の違い

ヒープ (データ構造): ヒープは、ヒープ ソートなどのツリーとしてみなすことができます。

スタック (データ構造): 先入れ後出しのデータ構造。

以上がヒープとスタックの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。