objective c
ARC
メカニズムに関するSOには多くの質問があります。多くの人が、ARC
を置き換えるかどうかなどを尋ねています。 Mac アプリ用にからGC
に移行することが合理的かどうかについての議論さえあります (一部のデータ型で複雑な参照を処理する作業があまり必要ない場合など)。ARC
GC
の明らかな欠点は、ARC
循環参照を消去するためのメカニズムがまったくないことです (編集: 循環強参照)。これは、メモリ リークに関する非常に適切で簡単な説明ARC
です。
また、AppleARC
のGC
.
http://lists.apple.com/archives/objc-language/2011/Jun/msg00013.html
どのように機能し、どのような問題があるかについてはよく理解していますが、世界からGC
移動して何かを読んでも、アプリケーションで循環参照を消去するバックグラウンドメカニズムがなぜないのかという単純なことはまだわかりません。C#/.NET
objective c / Cocoa
ARC
ARC
スレッドを中断する必要はありませんね。そのため、比較的安価に入手できます。実装するのは問題ですか?スタックをスキャンし、登録し、グラフを作成し、循環参照を検出し、アプリケーション スレッドを中断することなくメモリを解放するGCのライト バージョンは、クールに聞こえますよね?
深刻な計算やその他のリソースが必要ですか? すべてのオブジェクト グラフを構築せずに循環参照を見つける方法を想像するのは難しいですが、このプロセスがバックグラウンドで継続的であると仮定すると、そのようにしても問題ないはずです。
.NET 4.5 GC ( http://blogs.msdn.com/b/dotnet/archive/2012/07/20/the-net-framework-4-5-includes-new-garbage-collector-enhancements-for-client -and-server-apps.aspx ) はパフォーマンスが大幅に向上していますが、ARC システムに循環参照コレクターがあると 2 番目に勝者になりますか? ARC
システム進化の次のステップは何ですか? それが可能であり、いつかARC
循環参照コレクターが発生する場合、完全に置き換えることができますGC
か、または次世代GC
(さらに優れたパフォーマンスを持つ) がARC
システムを排除しますか?
UPD:参照について投稿しないでください。weak
私は ARC で循環参照を処理する方法を知っています。それは明らかです。質問は、循環参照コレクターを既存の ARC メカニズムに追加する可能性についてです。これは、最新の GC と同じくらい強力で汎用的であるためです。それは