質問

Silverlight 2の場合、プログラミングの選択肢は次のようになります。

  • C#
  • VB
  • DLRスクリプト言語
    • IronRuby
    • IronPython
    • 残念ながら無視された(キャンセルされない場合)Managed jScript

これは、ネイティブ言語(C#およびVB)がDLR言語よりも1桁ほど速い場合ですか?

「生きる」という希望Silverlightクライアントプログラミングを行うときのIronPythonで、またはプロセッサ集中型の作業のためにC#にドロップすることを期待すべきですか?

言語に関する私の調査は、 C#およびVBのサンプルセットおよび DLRについて説明しているこのページ

役に立ちましたか?

解決

残念ながら、この質問に対する難しい答えはありません。同じ言語のパフォーマンスでも、多くのパラメーターに基づいて大きく異なります。

はい、一般では、VB.NetおよびC#はDLRベースの言語よりも高速です。静的言語は、メソッドのバインドなど、コンパイル時により多くの作業を行います。このタイプの作業は、DLRベースの言語では実行時に実行する必要があるため、実行時に少しコストがかかります。

ただし、DLRおよびDLRベースの言語の最適化には多くの作業が必要です。この作業の多くは、さまざまなキャッシュなどによって軽減されます。多くのタイプのアプリケーションでは、パフォーマンスの違いは無視できます。

プロファイラーが実際に問題だと言わない限り、パフォーマンスだけに基づいてDLRベースの言語を除外しません。

他のヒント

通常、アルゴリズムを最適化すると、静的言語で書き直すよりもはるかに大きな効果があります。

.NET Rocksの Show#429 に興味があるかもしれません。 Michael Foordとのインタビュー。 transcript からの関連する抜粋を次に示します。

  

動的言語は非常に簡単です   テスト、彼らは本当に適しています   テスト駆動開発アプローチ   開発者はそれで取っていました   時間。しかし、私は   パフォーマンス上の理由、彼らは持っているだろう   ある時点でC#で書き換える   それから3年後   40,000行のIronPythonコードを取得し、   約140.000行あります   テストコード、私たちはいくつかのタイプを持っています   毎回約300行のC#   彼らはパフォーマンスを見に来ます   彼らが来て、ロケートするたびに   速く動作しない操作   十分な、私たちは得ることができました   改善することで必要な速度   アルゴリズム、Pythonの改善による   コードとC#にドロップする必要はありません、   プログラムの実行が遅い理由は   通常、言語のせいではありません。   それはプログラマのせいです   開発者。

Booも使用できます。サンプル boo

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top