VB6で実行ファイルを作成する時、同じ程度の容量のフォームなのにOBJファイルの作成の時間に非常に差が出るものがあります。
CPU 2.6GHz ,メモリ 256MB のマシンで、一つは1分程、もう一つは35分もかかってしまいます。
抽象的な質問で申し訳ないのですが、処理の書き方によってコンパイルに時間がかかるものなどがあるのでしょうか?
また、作成時間の早い書き方などありましたら是非ご教授よろしくお願いいたします。
回答ではありませんが
1分でも長いような気がしますが
>35分もかかってしまいます
というフォームはどのようなものを貼り付けているんですか?
フォームモジュール内のコーディング量は何行ぐらいあるんでしょうか?
それで作成される実行ファイルの容量はどのぐらいの大きさですか?
P-Codeコンパイルにすれば速くなると思います。
>35分もかかってしまいます
最適化の有無によってかなり変わるとは思いますが、
フォームに沢山の物/機能を詰め込みすぎの可能性が考えられます。
・表をラベルやテキストボックスを並べることで作っている
→グリッド系のコントロールを使えば1つにまとめることが出来る
・似た(全く同じ)処理をコピー&ペーストでいくつも作っている
→ループ、関数、プロシージャにする事で1つにまとめる
・無駄に変数が多い
→配列や構造体を有効利用する
・ビジネスロジックの本体までフォームに丸ごと存在する
→ロジック部分を分離してユーザーインタフェースだけをフォームに残す
などを検討してみては?
皆様返信ありがとうございます。
フォームの容量は両方1M程度で、作成されるOBJファイルも共に1M程度です。
フォームデザインには確かに4〜5つのSSTabの上にさらにコンボ、テキスト、
ラベル等かなり窮屈にコントロールが置かれています。
無駄なコントロール、ロジックがないか、
皆様のアドバイスを参考に再考してみます。
> 両方1M程度
すごすぎ (w
P-Codeコンパイルを行うと数十秒でコンパイルできました。
LESIA 様ありがとうございます。
P-Codeコンパイルにより作成されたexeはネイティブコンパイルと動作が微妙に違うという記事を見ましたので、気をつけてテストしてみます。
皆様ありがとうございました。
ツイート | ![]() |