- PR -

vb.netで作成したアプリの、起動時間について

1
投稿者投稿内容
s.maeda
会議室デビュー日: 2005/07/02
投稿数: 4
投稿日時: 2005-10-17 14:43
メモリ 768
CPU Celeron 2.53GHz
アプリ vb.net2003

VB.net 2003 を使用してWindowsアプリケーションを開発しております。

今回は、作成したアプリケーションの起動時間について、相談したいと思います。

Windowsを起動し、安定状態になったところで、作成したアプリを
起動すると、フォームを開くのが完了するまでに10数秒くらい
かかってしまいます。(サードパーティー製のコントロールを貼り付けている)
一度終了して、再度アプリを起動すると、2,3秒でフォームは開きます。
(二回目は、早くなる。)

ちなみに、フォームのみの実行ファイルを作成しても、一回目の起動は、
二回目に比べて少しだけ起動時間は長くなります。

同じ経験をされている方がいらっしゃると思います。
どうやって、改善や、解決をされたのでしょうか。
ユーザに出すとなると、さすがに10数秒待つのは、、、。

「ngen.exe」を使用すると、少しは早くなるかもしれないとあったのですが、
体感できるほど早くはなりませんでした。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-10-17 15:02
引用:

s.maedaさんの書き込み (2005-10-17 14:43) より:

ちなみに、フォームのみの実行ファイルを作成しても、一回目の起動は、
二回目に比べて少しだけ起動時間は長くなります。


初回は .NET Framework の起動時間もありますからね。

引用:

どうやって、改善や、解決をされたのでしょうか。
ユーザに出すとなると、さすがに10数秒待つのは、、、。


あまりに重いコンポーネントを多用したり、
単純にコントロールの数が多い場合は致し方ないと思います。
そうならないように画面設計するのが本来の回避方法かもしれません。
(アクセシビリティ・ユーザビリティなどを考慮しても)

とりあえず、現在のフォームがどんな構成になっているかも提示すると良いかもしれません。

引用:

「ngen.exe」を使用すると、少しは早くなるかもしれないとあったのですが、
体感できるほど早くはなりませんでした。


ネイティブ イメージ ジェネレータ (Ngen.exe) の解説を参照してみてください。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
葉瀬崎浩樹
大ベテラン
会議室デビュー日: 2005/06/28
投稿数: 115
お住まい・勤務地: 兵庫県
投稿日時: 2005-10-17 15:06
こんにちは。
こんなもの見つけました。
Windowsアプリの起動時間、どれくらいかかってますか?

Windows起動時に、裏で起動しておくのはまずいでしょうか?
CLRの起動に時間がかかる、ということが起こり得るのであれば、
何もしない軽量のダミーアプリの起動でも十分かも知れません。
#必要に迫られたことが無いので、未検証ですが。

#3ページ目をリンク先に指定していたので修正(恥

[ メッセージ編集済み 編集者: 葉瀬崎浩樹 編集日時 2005-10-17 15:16 ]
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2005-10-17 16:26
.NETアプリに限らずどのアプリケーションでも、初回起動に時間がかかるのは同じですが、
それだけのスペックのマシンで10数秒というのは、やはり設計を見直すべきではないでしょうか。
というか、初回と二回目でそれだけの差が出るというところで、ものすごいフォームを想像しますが…。

改善方法はものによるので、なんとも言えませんよね…。
起動時に必ずしも必要のないロジックや領域やコントロールを動的に割り当てるようにすることが最初に思いつきますが、
場合によっては初期化のロジックがスマートでないから、きれいにするとか…。
画像リソースが多いのなら、フォーマットを変えれば読み込み時間が短くなるかも知れないし…。
s.maeda
会議室デビュー日: 2005/07/02
投稿数: 4
投稿日時: 2005-10-17 18:57
書き込みしたものです。
色々なご返答ありがとうございます。

ご指摘いただきました情報を追加いたします。

フォーム上のコントロールは、コマンドボタン12個、ラベル12個
StatusBarを1つと、GrapeCityのEl Tabelleを貼り付けております。

El Tabelle は、デザイナでデザインしたものを貼り付けております。
おそらく、このEl Tabelleが一番重いと感じているのですが、、。

問い合わせをしたのですが、いい返事を頂けなかったので、
投稿してみました。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2005-10-17 23:36
引用:

El Tabelle は、デザイナでデザインしたものを貼り付けております。
おそらく、このEl Tabelleが一番重いと感じているのですが、、。



なら、その Table を外した状態のモノを作ってみて、起動時間がどれだけ変化するくらいは調べてみてはどうですか?
なおこ(・∀・)
大ベテラン
会議室デビュー日: 2004/04/08
投稿数: 174
お住まい・勤務地: 東京都
投稿日時: 2005-10-17 23:59
お世話になります。

引用:

フォーム上のコントロールは、コマンドボタン12個、ラベル12個
StatusBarを1つと、GrapeCityのEl Tabelleを貼り付けております。

El Tabelle は、デザイナでデザインしたものを貼り付けております。
おそらく、このEl Tabelleが一番重いと感じているのですが、、。



私も以前、El Tabelleを使った事があるのですが、
デザイナで色々弄くったものをロードするとめちゃくちゃ重いです。
特に、計算式なんかを埋め込んでると相当時間がかかります。

InitializeComponentのなかで、
Console.WriteLine(Environment.TickCount)
  Formのコントロールのプロパティをセットするコード
Console.WriteLine(Environment.TickCount)

のような感じで時間を計測してみましたが、
デザイナで色々弄くったEl Tabelleの部分が
莫大な時間が掛かった記憶があります。

# 結局デザイナで弄くるのはやめて、
# ロードしてからコードで弄くって対応しました。
1

スキルアップ/キャリアアップ(JOB@IT)