Objective-Cクラスにメソッドを追加することは、そのクラスのメモリ使用に影響しますか?カテゴリにはどのようなメモリ使用率が影響しますか?
答えて
クラスのカテゴリの影響
Objective-Cランタイムは、最終的にカテゴリが含まれてあなたのインスタンスのクラス階層を生成することによって、あなたのカテゴリのメソッドを称えます。カテゴリを実装しているクラスのインスタンスは、追加のサブクラスよりも高価でなく、メモリを要求しません。カテゴリメソッドは実行時に適用されますが、メソッドがクラスに追加されると、そのクラスで定義されたメソッドと変わりありません。これらのオブジェクト間のメッセージ送信のための機構はすべて同じです。
カテゴリは、コードの設計と懸念事項の分離に関するものです。既存のCocoaパターンを使用して、メモリの最適化を考えずに、クラスの設計に役立つツールとして簡単に使用できます。
ランタイム環境上のカテゴリーの全体的な影響
@NSResponderはさらに良い点を思い出させます。カテゴリは実行時にロードされるため、使用されるまでロードされません。非常に大きなクラスまたはクラスクラスタには、別のカテゴリの上位レベルのフレームワーク用のコードが含まれている場合があります。上位レベルのフレームワークを完全に回避すると、追加するカテゴリをロードする必要はありません。たとえば、クラスはFoundationレイヤーで正常に動作し、次にCocoaレイヤーから使用されたときに余分な機能をロードします。だから、これはスペースを節約するものと考えることができ、それは大きな画像のための良い答えです。
あなたが単にいくつかのクラスを書くのであれば、これはメモリを自分で最適化するための主な手段ではありません。複数のレイヤーにまたがる大量のコードを記述している場合を除き、通常は、それらを自分で使用するか、他のオブジェクトで使用できるようにするためにカテゴリを宣言します。 Objective-CとCocoaフレームワークは、この目的を十分に果たすコード束縛を遅延ロードするための良い機械を持っています。
メモリフットプリントのカテゴリの利点は、アプリケーションが使用するまでカテゴリを読み込まないことです。 NeXTSTEPのこの日の正式な例は、ビューの印刷コードをカテゴリに入れることでした。
- 1. 未使用のJavascriptオブジェクトメソッドはどのようにメモリ使用量に影響しますか?
- 2. Javaのストリームはどのようにメモリ消費に影響しますか?
- 3. データベースにはどのような影響がありますか?
- 4. Socket_select:入力には影響しますが、正確にはどのように影響しますか?
- 5. 変数の名前付けは、アプリケーションのメモリ使用量にどのような影響を与えますか?
- 6. grailsの一時的なプロパティはアプリケーションのメモリ使用に影響しますか?
- 7. ファイルサイズがパフォーマンスにどのように影響しますか?
- 8. BlazeDSのオープンソースはAdobe Flexの採用率にどのような影響を与えましたか?
- 9. Object.observe()はどのようにパフォーマンスに影響しますか?
- 10. java stream.peek()はどのようにバイトコードに影響しますか?
- 11. innodb_log_file_sizeはどのようにパフォーマンスに影響しますか?
- 12. カスタムモデルバインダーはテストにどのように影響しますか?
- 13. Gitではどのような設定がユーザ名に影響しますか?
- 14. 'java'バイナリにはどのような環境変数が影響しますか?
- 15. グラフアイテムのレイアウトにどのように影響しますか?
- 16. クラスタサイズの最適化にはどのような影響がありますか?
- 17. compareToのオーバーライドにはどのような影響がありますか?
- 18. ProGuardでは、テスト戦略にどのような影響がありますか?
- 19. ロールバックトランザクションでループを使用してデータにどのように影響するか
- 20. EnableViewStateはGridView上でどのようなコントロールに影響しますか?
- 21. System.out.println()はコード効率に影響しますか?
- 22. オペコードキャッシュがメモリ使用量に与える影響
- 23. gdi +を使用したx64アプリケーション:パフォーマンスにどのような影響がありますか?
- 24. メモリ内のシェーダーの数はパフォーマンスにどの程度影響しますか?
- 25. iOSアプリケーションのコンパイル時にarmv7を使用するとパフォーマンスにどのような影響がありますか?
- 26. opencvのsvm_paramsが私の分類にどのように影響しますか?
- 27. 異なるビューで同じドロアブルを使用すると、メモリの使用に影響しますか?
- 28. JS DOMの操作がCSSルールマッチングにどのように影響しますか?
- 29. floatが背景色にどのように影響していますか?
- 30. この行はシェルスクリプトにどのような影響を与えますか?
残っている細部があります。カテゴリ内のコードは、実際に使用されるまでメモリにロードされません。 – NSResponder
それは本当です。私はそれを書き留めました。 – keparo
コンテキストの場合は、NSDateにカテゴリを追加しました。どのようにメモリが集中しているのですか? – Moshe