私は、自分の言語としてC#で.NET Frameworkを始めたばかりです。私はJavaでGCの概念を幾分理解しており、今日も.NETで同じ概念を再考しています。ガベージコレクションはスタックに影響しますか?
C#では、値の型がスタックに置かれます(Javaには、ローカル変数がスタックに置かれます)。しかし、C#では、さらに値の型にstruct
が含まれています。したがって、struct
もスタックに配置されます。最悪の場合、多くのメソッド呼び出しがあり、スタックに多数のメソッドが頻繁に設定され、各メソッドには多くのローカル値型があり、多くのローカル値型を持つstruct
が多数あります。スタック?私が研究したこと(そして私が学んだことの一部)から、私はそれがそうしないことを理解する。主にスタックの内容を操作するにはオーバーヘッドが多くなります。また、GCは参照を参照するだけでスタックを調べるだけです。
同じトピックに関するもう1つの質問を追加するだけです.GCへの呼び出しを強制する(JavaではSystem.gc()
と同じですが、C#と同等ではありません)ので、GCルーチンが確実に呼び出されるわけではありません。だから私はそのような呼び出しをどこに置くべきですか?私はGCを実行する必要があると思います。それとも、ランタイム環境に残しておけばいいのですか?
注:ここから概念をリンクしようとしているため、Javaタグを追加しました。私は、2つの別々のランタイム環境におけるGCの内部機能は間違いなく異なると理解していますが、基本的な考え方は同じであると思います。
お返事ありがとうございます。私はそれについてもっと読んだ後に私は戻ってきます。 –