2017-08-01 3 views
1

クラスのメソッドを拡張子(Swift extensionare extensions bad for performance in swift?)に移動するときに実行時のパフォーマンスの違いがないはずであるということを知っています。Swift:プライベート/ファイルプライベート実行時のパフォーマンス

しかし、必要なprivateのプロパティをfileprivateに変更することで、実行時のパフォーマンスに違いがあるかどうかについて多くのドキュメントを見つけることができません。クラス)にアクセスします。

パフォーマンスの違いは誰にも分かりますか? (コンパイル時の違いについては気にしませんが、とにかくこの場合には存在しないと思いますが、実行時だけです)

+1

時期尚早に最適化する危険はありませんか? – matt

+0

私は@mattに同意します。また、ビルドによって作成されたバイナリが単一のユニットであるため、2つの間のランタイム*パフォーマンスはほとんど問題ではないことを願っています。 – dfd

+0

おそらく?とにかく、私は答えを知りたいと思っています。それは "最適化時間"のために役立つかもしれないからです...ありがとう! – nbloqs

答えて

3

なぜこのような違いがありますか?これらのプライバシー条件は、ほとんどの場合、特定の種類のアクセスを禁止するためのコンパイラに対するメモです。

実行時の重要な利点は、モジュール全体の最適化の使用やクラスの宣言によるものです。finalこれにより、動的ディスパッチをオフにすることができます。

+0

ありがとう@matt。この種のランタイムパフォーマンスに関するAppleの文書へのリンクがあるのか​​、それとも他の誰かがInstrumentsなどで行った測定についてのリンクがあるかどうかは分かりますか?私はちょうど興味があります... – nbloqs