3

それらについてどう思いますか。

仕事でアンマネージ コードを書かなければならないこともありますが、大規模な (ゲーム) プロジェクトでは、時間がかかり複雑になるだけで、より多くの人を投入することで解決できます。

マネージド コードは大規模なアプリケーションに適していると思いますか? (Photoshop、3ds MaxMayaXSIなどのアプリケーションは計算量が多いが、ゲームのリアルタイム要件を (ある程度) 備えていません)。

4

3 に答える 3

3

パフォーマンス上の理由からアンマネージ コードを使用することは、私が今まで聞いた中で最悪の時期尚早な最適化の 1 つだと思います。より高速である可能性があるという理由だけで使用するのが難しいテクノロジーを選択する前に、その速度が必要であることを十分に確認する必要があります。

その上、CLR は管理されていないパフォーマンスに非常に近いため、100 件中 99 件のケースではそれについて考える必要さえありません。また、パフォーマンスが必要な陣営に陥ったとしても、ほとんどのコードをマネージド スペースに記述してから、プロファイラーが指示する部分でアンマネージド スペースに切り替える必要があります。

特にゲームについて: いくつかの大きなタイトルが mono で記述され、パフォーマンスが向上しましたこれは、管理されたコードですべてを記述でき、AI のような抽象的な部分のスクリプト言語に頼る必要がなかったためです。

于 2009-02-11T19:34:48.090 に答える
3

.NET で大規模なアプリケーションを実行できると思います。そこには多くの例があります:

  • VisualStudio の一部は .NET で記述されています (WinForms エディターや WPF エディターなど)。
  • Expression Blend は .NET および WPF で記述されています
  • Stackoverflow は、他の多くのサイトと同様に .NET と ASP.NET を使用しています。
  • VisualStudio 2010 では、新しいエディター (現在の実装の代替) が .NET および WPF で記述されています。

計算量の多いアプリケーションについて一言: コードはインタープリターによってマシン コードにコンパイルされるため、ほとんどの計算はアンマネージ コードと同じくらい高速である必要があります。

一方、多くの利点があります。

  • (ほぼ) メモリ リークなし (ガベージ コレクター)
  • 何かが間違っていると例外が発生し、情報がなければクラッシュしません
  • コードは x32 と x64 で同じように適切に動作し、アプリケーションを変更または再コンパイルする必要はありません。
  • C# は C++ よりも使いやすい (デリゲート、コレクション、LINQ など)
  • ...
于 2009-02-11T19:39:30.917 に答える
1

あなたがPhotoShopに言及したので... paint.netは、C#で書かれた素晴らしいグラフィックパッケージです(PhotoShopほどではありませんが、それでも印象的です)。

于 2009-02-11T19:41:45.170 に答える