[解決済み] Rustはガベージコレクタの代わりに何を搭載しているのか?
2022-08-20 17:33:41
質問
Rustにはガベージコレクタがないそうですが、バインディングがスコープ外に出たときにメモリがどのように解放されるのか気になります。
この例では、'a'がスコープ外に出たときに、Rustが'a'に割り当てられたメモリを再要求することが理解できます。
{
let a = 4
}
私が抱えている問題は、第一にこれがどのように起こるのか、第二にこれは一種のガベージコレクションではないのでしょうか? 典型的な」ガベージコレクションとはどのように違うのでしょうか?
どのように解決するのですか?
ガベージコレクションは通常、ヒープが満杯に近い場合やある閾値を超えた場合など、定期的または必要に応じて使用されます。そして、未使用の変数を探し、そのメモリを解放します。 アルゴリズム .
Rustはコンパイル時に変数がスコープから外れるか、その寿命が終わるかを知ることができるので、対応するLLVM/アセンブリ命令を挿入してメモリを解放することができます。
Rustはまた、以下のようなある種のガベージコレクションを可能にします。 アトミック参照カウント がありますが。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン