通知
すべてクリア
Topic starter
2003年7月2日 9:08 PM
ここで質問することではないと思いますが、よろしくお願いします。
現在、C#でTextを読み込んでExcelに貼り付ける作業を全て実施していますが
DLL:C#/EXE:C++
といった組み合わせの方が処理速度はいいのでしょうか?
それとも、他でもっと処理速度が上がる方法はありますか?
2003年7月4日 8:09 PM
>DLL:C#/EXE:C++
この組み合わせにして速度が上がるかもしれないと
思う根拠はなんでしょうか。
ボトルネックを切り分けたほうがよいですよ。
Excel をオートメーションで使用していて
そこがボトルネックなのだと仮定しますが、
Excel はアウトプロセス サーバーですので
メソッド呼び出しなどのオーバーヘッドはかなり大きくなります。
ループで繰り返し呼び出した場合、オーバーヘッドが
無視できなくなります。
以下に気を付けてみましょう。
・メソッドの呼び出し回数を減らせないか
複数の値を一度に設定できるメソッドの使用はできないか
・オブジェクト参照の回数を減らす
1.より、2.のコードにすべきです。
1.
for (i = 0; i < 500; i++) {
abc.def.ghi.jkl(i);
}
2.
obj = abc.def.ghi;
for (i = 0; i < 500; i++) {
obj.jkl(i);
}
ほかにもあるかもしれませんが、
とりあえず こんなところで。