2

何年もの間、C ++は高速であると聞いていたので、たとえば画像処理に適しています。

画像処理を行う必要のあるC#でシステムを開発していて、パフォーマンスを向上させたい場合、最善のアプローチは何ですか?

1-すべてをC#で実行し、「アンマネージド」に含まれる画像処理機能を実行します

2-画像を処理する関数をC++で記述し、この関数をC#コードにインポートしますか?

別の質問?

どちらがパフォーマンスを向上させますか?

4

2 に答える 2

2

C++ から C# への呼び出しと、IL コードからマシン コード生成の間のトレードオフです。

  1. C# は IL コードを生成し、実行時にマシン コードに変換されます。マシンコード生成には多少のコストがかかります。
  2. C# から、C++ DLL のメソッドを呼び出すことができます。C++ メソッドのロードと呼び出しには、いくらかのコストがかかります。

ここで、1 と 2 のコストを比較する必要があります。

于 2012-10-03T13:44:21.530 に答える
1

どのような画像処理操作を行う必要があるのか​​ わかりませんが、非常に優れたパフォーマンスを得たい場合は、CUDAまたはOpenCL(グラフィックカードでのプログラミング)の使用を検討できます.

于 2012-10-03T13:34:43.353 に答える