web-dev-qa-db-ja.com

Swift vs Objective-C:アプリのパフォーマンス

私はSwiftとObjective-Cとの違いについていくつかの研究を行っています。収集できるものから、現在のバージョンのSwiftは非常に高速で、 Objective-Cより: こちらを参照

ただし、これらのテストのほとんどはソートアルゴリズムなどで行われているため、iOSアプリの開発に使用する場合、SwiftはObjective-Cよりも実際に高速になるかどうか疑問に思っています。できれば自分の経験から。

26
Black Magic

素晴らしいブログ記事があります Swiftパフォーマンスの改善について特にafter Swift 1.2リリース。

著者は、Objc-like Swift code、Swift only and Objective-c only code .. Swift 1.2は以前よりもはるかに高速です。彼はJSONでテストを実行したため、単なるアルゴリズムよりも少し実用的です。

「実際の」パフォーマンスに加えて、それに関する私の個人的な経験は、私がSwiftでずっと簡単に開発しているということです。私は.hおよび.mファイルがObjective-Cから「プログラミングのフロー」を停止したため。また、構文自体は、objective-c [これらの括弧付き]よりもはるかに簡単だと思います。

だから、Scratchから新しいプロジェクトを書くと、Swiftの方がはるかに簡単で、速く、エレガントです。(私の意見)

29
Christian Wörz

SwiftはAppleによりObjective-Cよりも高速であると主張されており、これらのソートアルゴリズムでは高速であると述べましたが、iOS開発の使用では、単純なユーザーは違いを認識しませんSwiftまたはObjective-Cで開発されたアプリの間。Objective-Cでは、Appleストアで、現在はSwiftそしてこれまでのところ、一方が他方よりもはるかに速い場合、ユーザーは違いを知ることができません。

Swiftが、Objective-Cで開発されたアプリケーションよりもはるかに高速に実行されるアプリケーションになることはほとんどありません。 2つの言語はまったく異なるものの、どちらも同じCocoaとCocoa Touch API、iOSとOS X aを対象としますが、どちらも静的に型付けされた言語であり、どちらも同じLLVMコンパイラを使用しているため、結局それほど違いはありません。 2つの言語は結局同一ではないため、パフォーマンスの違いがありますが、大きな違いは期待できません。

Swiftは、Appleから開発され、Ruby and Python than Objective-Cです。

38
trimi

Objective-Cと比較したSwiftには、次のような独自の利点があります:Swift文字列をより簡単に処理します。Swiftタプルは複合変数を提供し、さらに、コーダーは不要です。型情報で変数に注釈を付けるのに時間を費やし、ミスを犯す危険性があります;ほとんどの場合、コンパイラは変数が設定されている値から型を推測できます。

0
vesi

どんな言語でも遅いコードを書くことができ、Swiftも例外ではありません。私は、Swift 1.2 Betaですが、ほとんどのコードの前でさえも、特に最終インスタンス以外のメソッドへのアクセスは非常に遅く、デバッグビルドは恐ろしく遅いです(リリースビルドよりも100倍遅い場合がいくつかあります)。通常、最も深くネストされたループを最適化するだけで、Cのパフォーマンスに近い場所にすばやく到達できます。

作成するコードのほとんどは、遅い操作をメインUIキューから移動できるのであれば、それほどパフォーマンスは重要ではありません。 API呼び出しにより多くの時間が費やされ、それらは呼び出しに使用される言語の影響を受けません。パフォーマンスが重要な場合でも、大幅に最適化する必要があるコードの量は少なくなる傾向があり、それらの部分だけをより高速な言語(Cなど)に切り替えることができます。

Objective-Cを比較するときは、Objective-Cが何を意味するのかを検討する価値もあります。 Objective-CコードでC関数を書くと、Cと同じくらい高速にコードが生成されます。Objective-Cのパフォーマンスについて有意義に話すには、Objective-Cメッセージの送信とおそらく生のC配列ではなくNSArraysです。それが基礎である場合Swift(最適化され、構造体と最終クラスを使用する場合)は非常にうまくいきます。ただし、Cコードと比較する場合、通常はSwiftは現時点では遅くなります。

最適化についてのブログ投稿がいくつかありますSwift on blog そして、10月に short talk を行いました。

0
Joseph Lord