-PR-
解決
済み

パフォーマンスについて

  • 困ってます
  • 質問No.89106
  • 閲覧数133
  • ありがとう数7
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 40% (36/88)

ASPからExcelの既存マクロを実行させようとしております。

既存マクロでは、シート上の値を参照集計して、帳票を出力していました。

これを、次の2つの方法のうちでどちらの方がパフォーマンスが良いか悩んでいます。
----------------方法(1)----------------------------
・ASP側でDBから値を取得する。
・取得したデータをCSVする。
・ASPでExcelを起動させる際にCSVを読み込ませて、既存シートと同じ体裁のシートを自動作成する。
・既存マクロの実行
--------------------------------------------------

----------------方法(2)----------------------------
・ASP側でDBから値を取得する。
・ASPでExcelを起動させ、既存シートと同じ体裁になるように、取得したデータを
セルに代入する。(シートの自動作成)
・既存マクロの実行
--------------------------------------------------

とあるHPで、方法(1)の方が、方法(2)よりもパフォーマンスが良かったそうなのですが、本当にそうなのでしょうか?

あと、IF文のネストとSELECT CASE文は、どちらがパフォーマンスが良いのでしょうか?

ご教授願います。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル10

ベストアンサー率 42% (79/186)

私もhequilさんの意見に賛成です。

ただ考えるに、データ件数が少ないときは方法(2)のほうがパフォーマンスがよく、データ件数が増えると、方法(1)のほうがパフォーマンスがよいような気がします。

どちらの方法も、あらかじめ、サーバーサイドでExcelを立ち上げておいたほうがパフォーマンスがいいと思います。Excelの起動はなかなか時間のかかる処理なので、Global.asaであらかじめExcelを立ち上げておいて、Applicationオブジェクトに入れておくのがいいのではないでしょうか?
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル12

ベストアンサー率 65% (242/372)

このようなパフォーマンスの優劣ですが、 一般的にこっちの方が早い、というのはあっても 実際に処理の内容によっては異なることもあります。 当たり前な話ですが、実際の処理を2パターンとも作成し、処理時間を計測するのが一番だと思います。 (面倒ですが・・・・) なお、ASPで処理時間を計測する方法の1つとして 河端善博氏が公開されているTimeToolコンポーネントの GetTickCou ...続きを読む
このようなパフォーマンスの優劣ですが、
一般的にこっちの方が早い、というのはあっても
実際に処理の内容によっては異なることもあります。

当たり前な話ですが、実際の処理を2パターンとも作成し、処理時間を計測するのが一番だと思います。
(面倒ですが・・・・)

なお、ASPで処理時間を計測する方法の1つとして
河端善博氏が公開されているTimeToolコンポーネントの
GetTickCount関数を利用すればミリ秒単位での計測が可能です。

以上、参考まで


このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ