VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2003/03/28(Fri) 11:42
投稿者ひろぽん
Eメール
URL
タイトルクラスは遅い?

ファイルを読み込んで、変数に格納するプロシージャがあるのですが、
変数があまりにも多く、以外と時間もかかるため、変数の定義方法を変えて
高速格納化を目指してます。

今MDI環境で作成してますが、変数は全てクラスで定義していて、2次元
および3次元の配列はクラスではうまく表現できないため、それらの配列変数は
コレクションを用いてます。
昔、SDIで作成したときは、対象のプロシージャを含むモジュールの先頭部分で
Public変数(表現は悪いですが、クラスを用いずという意味)として定義してました。
この両者、つまり、「クラス(MDI)」と「Public変数(SDI)」で読込み
時間(格納時間)を比較した結果、後者の「Public変数」の方が3〜4倍程度
早い事が確認できてます。

(質問1)
遅くなった原因ですが、これはクラスを用いているせいでしょうか。それとも
MDIだからでしょうか。それともコレクションを使ったせいでしょうか。
分かるようでしたら、是非教えてください。

以上のような事から「クラス(MDI)」→「Public変数(MDI)」に変更しようか
どうか非常に迷ってます。せっかく、MDIにするためにクラスを導入したのに、
また「Public変数」に戻るのもしゃくですが、高速化が最大目標だから、
そうしたいと思ってます。

(質問2)
また「Public変数(MDI)」にする場合には、「Public変数(SDI)」で使っていた
変数を、子フォーム毎の変数を識別するため、下記の例のように配列化しなければ
ならないと思うのですが、本手法は一般的でしょうか?
     Dim X As Long
           ↓
     Dim X() As Long
          …
     WindowNo = WindowNo + 1  '子フォームを開く毎に加算
     Redim X(WindowNo) As Long

以上の件、よろしくご教授下さい。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -