この機能はどのような状況で使用する必要がありますか?
それはどれくらい正確に成熟していますか?
長所と短所は何ですか?
それはどのような問題を解決しますか?
これは、MonoTouch、Mono GC、またはObjCでの参照カウントに固有ですか?
この機能はどのような状況で使用する必要がありますか?
それはどれくらい正確に成熟していますか?
長所と短所は何ですか?
それはどのような問題を解決しますか?
これは、MonoTouch、Mono GC、またはObjCでの参照カウントに固有ですか?
ここにあなたの質問に対するいくつかの迅速で高レベルの(そしてアウトまたはオーダーの)答えがあります...
これは、MonoTouch、Mono GC、またはObjCでの参照カウントに固有ですか?
これによりsgen
、モノガベージコレクターはObjective-C参照カウントとより緊密に連携できます。その認識はMono(またはAndroidのMono)には必要ないため、MonoTouchに固有です。
それはどれくらい正確に成熟していますか?
UIが言うように:実験的なプレビュー。そのため、動作することはわかっていますが、アプリケーション内での使用はまだ広く行われていません(デフォルトのGCと比較して)。それは目的地よりも方向性です(つまり、進化する可能性があります)。
あなたはそれをテストし、それを使用し(それがあなたの状況で有用であることが判明した場合)そしてそれであなたの発見/経験を報告することを歓迎します。ただし、完全にはサポートされていません。たとえば、すぐに修正または回避できないバグが発生する可能性があります(デフォルト設定に戻すように求められる場合を除く)。
それはどのような問題を解決しますか?
ガベージコレクターとObjective-Cの参照カウントの共存は非常に複雑な問題です。MonoTouchは、これの(ほとんどの)複雑さを開発者に隠すために最善を尽くします。
これのほとんどは、ランタイム内で実行されます(たとえば、バッキングフィールドを使用して)。この拡張機能sgen
は、GC自体(ランタイムだけでなく)に参照カウントの必要性を認識させることを目的としています。
長所と短所は何ですか?
PRO:リンカは、管理対象オブジェクトへの参照を維持するために必要となる多くのバッキングフィールドを削除できるため、メモリを節約できます。これらの(参照)バッキングフィールドがないと、GCは通常インスタンスを収集します(アンマネージコードで引き続き必要です)。
CON:より多くのフィードバック、より多くの比較データ(パフォーマンスなど)が必要です。