Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Objective-Cでメソッドスウィズリングを使用すると、どのようなパフォーマンスペナルティが発生しますか?
メッセージのスウィズリングで無効になるコンパイラの最適化があるとすれば、それはどれですか?
スウィズリングにより、Objective-C ランタイムはそのメソッド キャッシュをフラッシュします。プログラムのできるだけ早い段階ですべてのスウィズルを実行しても、おそらく目立った影響はありません。
Objective-C では、(スウィズリングのように) 実行時であっても、任意のメソッドをオーバーライドできるため、コンパイラはメソッド呼び出しを最適化するために多くのことを行うことができません。したがって、スウィズルを使用するかどうかにかかわらず、スウィズルのパフォーマンスの代償をすでに支払っています。