私はいくつかの画像処理を行うクラスライブラリ(GNGEngine.dllと呼ばれる)を作成しました。このdllには、特定のパターンの検索を行う主な機能として、ProcessBitmap()関数が含まれています。私はanothersフォームアプリケーションを作成し、dllの参照を取ることによってエンジンをテストしました。私はボタンをクリックしてdllのProcessBitmap()メソッドを呼び出しています。フォームアプリケーションは、画像を完全に処理するのに8秒かかります。コンソールアプリケーションがフォームアプリケーションよりもC言語で時間がかかる理由#
クライアントごとに、私はexe(コンソールアプリケーション)ファイルGNGEngineRunner.exeを作成しました。これはイメージファイル名を引数として取ります。私はdllクラスのオブジェクトを作成し、メソッドProcessBitmap()を呼び出し、処理のためにファイルを渡しました。同じ画像が処理に約1分かかります。
時間がかかりすぎる理由は何ですか?
あなたの貴重な時間を共有してくれてありがとう。
詳細については言及しません。 –
両方のアプリケーションをプロファイルしてください。このアプリは無料ですが、http://www.eqatec.com/Profiler/Download.aspxですが、そこから任意のプロファイラを選択することができます。プロファイリングの後、どのメソッドが最も時間を費やしたかを見ることができます。私の推測ですが、それはhttp://stackoverflow.com/questions/4154429/apartmentstate-for-dummiesに関連しています – Martheen
プロファイリングを開始する前に、誤って2番目のケースでDLLのデバッグバージョンを使用していないことを確認してください。 –