実行時にARCが余分な処理を実行しますか? this answerのコメントでは、「ARCバンプは実行時にカウントされ、ゼロに達したときだけ解放されます。これは本当ですか?もしそうなら、なぜリリースコールがコンパイル時に追加されたのですか?実行時に自動参照カウントにコストがかかります
答えて
ARCは無料ではない - 参照カウントが0
あるとき、それは増加し、参照カウントを減少させ、およびdeallocを対象ます:ところで、ARCの詳細な説明のため、このページを読んで
手動の保持/解放と比較して、ARCは正しいでしょう。保持/解放のペアが互いに打ち消し合う時期をよく知っているため、保持/解放は頻繁に呼び出されることがあります。 Objective-Cメソッドの呼び出し(Objective-Cでは、retain/releaseをオーバーライドできますが、ARCではできません)。
ARCは、C++のstd :: shared_ptrと同じではないにしても、オブジェクトがスコープ外に出たときにexit時間関数を呼び出す必要がある場合は参照カウントを使用します。 Obj-Cの場合、その呼び出しは解放されます。
参照カウントがどのように減少するかを管理するためにコンパイラによって追加されるリリースコール。 clangの仕組みは非常に面倒で、参照カウントを増やすすべてのメソッドへの呼び出しのためにリリースするコールのバランスが取れているかどうかをチェックする手間が省けます。
元の質問に関して、ARCはランタイムアプリケーションで追加のパフォーマンスコストを発生させるべきではありません。
あなたのアプリが記憶上の問題を抱えていると思われる場合は、あなたのアプリをインストゥルメントでプロファイリングして、どこの時間が費やされているかを確認する必要があります。
メモリの最適化はワックスのまったく異なるボールですが、ありがたいことに解決策があります。したがって、非常にスレッド化されたアプリケーションに並行メモリ割り当てに関する問題がある場合は、インテルのスレッドビルディングブロックのような優れたメモリマネージャが付属していますが、C/C++用に設計されています。 http://clang.llvm.org/docs/AutomaticReferenceCounting.html
- 1. malloc +自動参照カウント?
- 2. 自動参照カウントとファイナライズ
- 3. スマートポインタと自動参照カウント
- 4. 参照。実行時に.NETアセンブリが見つかりません
- 5. 原子参照カウントと自動参照カウントの違いは何ですか?
- 6. CVDisplayLink +自動参照カウントが一緒にうまく
- 7. iOS:MBProgressHUDおよび自動参照カウント(ARC)
- 8. 自動参照カウント(ARC)とretainCount
- 9. ReSharperに参照カウントがありますか?
- 10. Objective Cの自動参照カウントはどのように機能しますか?
- 11. 自動参照カウント(ARC)アプリケーションはApp Storeに登録できますか?
- 12. 自動実行参照サービスを無効にする方法
- 13. 実行時にnull参照が発生する可能性があります。
- 14. 実行時の参照カーソル
- 15. 実行時にC#の参照が追加されます
- 16. OSX:DLL自体に参照がありますか?
- 17. C#自動実行時にメソッドコールバックを生成しますか?
- 18. NuGet:パッケージへの参照を自動的に移行します
- 19. Hibernateは参照カーソルを自動的に閉じますか?
- 20. ブーストshared_ptr逆参照コスト
- 21. はmysql参照自体の行にできますか?
- 22. 自動参照カウントプリプロセッサ
- 23. 自己のノード深度カウントをカウントするneo4jの参照先
- 24. 自動参照カウント付き/なしのCocoapodを作成
- 25. iOS自動参照カウント(ARC)の下位互換性?
- 26. Objective-C自動参照カウント(ARC)とキー値の観測
- 27. 参照カウントについて
- 28. リンク時または実行時に参照を解決するには?
- 29. 実行時にC#プログラムがアセンブリ参照を失った
- 30. Apache Zeppelin:起動時に自動的にコードを実行していますか?
コンパイル時ではなく、実行時に参照カウントを増減させるのはなぜですか。 – oneofone