【VB2005ご相談】

現在1つのソリューションの中で複数のプロジェクト(画面)があり、それぞれがEXE形式になっています。
画面間の遷移はEXEを起動するような形なのですが、.NETアプリは起動が遅い?ので困っています。

こういったケースでは、メニュー.EXEのようなものを1つ置き、あとの画面は、クラスライブラリでdll化するのが作法なのでしょうか?
一般的にはどうなのでしょうか?
色々と開発経験がございましたら、お聞かせ願えないでしょうか?

回答の条件
  • 1人1回まで
  • 登録:2006/11/09 23:12:47
  • 終了:2006/11/16 23:15:03

回答(3件)

id:ardarim No.1

ardarim回答回数897ベストアンサー獲得回数1452006/11/10 02:24:19

ポイント35pt

このあたりが参考になるのではないでしょうか。

ソースを変えずに高速化する(.NET Framework)

.NET Framework製のEXE/DLLファイルの起動を手軽に高速化「.NET R-Tune」

アプリケーション起動時間の短縮

どうでしょう。


個人的にはキャッシュを有効に使うことが鍵だと思います。.NET Frameworkでは、JITが動いたりするので最初の起動が遅いといったことが起こりがちです(2回目以降はJITコンパイルの結果がキャッシュされるので早くなる)。上記のサイトでも出てくるNGENなどは実行時にJITで行うものをプリコンパイルしてキャッシュしておくイメージです。


NGENについて(公式)

ネイティブ イメージ ジェネレータ (Ngen.exe)

id:llusall

とても参考になります。

ありがとうございました。

2006/11/10 09:35:05
id:kazu1107 No.2

kazu1107回答回数199ベストアンサー獲得回数142006/11/10 04:53:40

ポイント35pt

>.NETアプリは起動が遅い?

.NETアプリでも小規模なものならそれほど気にならないと思いますが・・・質問するぐらいなので、中~大規模を想定して解説します。


まず、VB.NETで作成しているとのことですので、そのプログラムは起動するたびにMISLとよばれる中間コードをコンパイルするので、起動が遅いはずです。

画面遷移するたびにコンパイルしているわけですから、余計に時間を食います。

そのプログラムが使われる環境は特定されているのでしょうか?

特定されているのなら、MISLをあらかじめコンパイルした形のファイルを作るいわゆる「高速化ツール」を使うのが手っ取り早いです。

ツール自体は.NET Frameworksに付属しているのですが、操作はコンソール画面で行うので、慣れないなら以下のようなソフトを使うのがおすすめです。

http://www.forest.impress.co.jp/article/2006/04/06/dotnetrtune.h...

不特定多数の環境で動かすことを考慮しても、インストール時に高速化ツールを呼び出す仕組みにして高速化するということも可能です。(そもそもアンマネージドコードになって、影響が出るほどの環境依存があるのかは疑問です。。。)


実際に使ってみてストレスを感じるならdll化について考えてみても良いかもしれません。

dll化するのは綺麗にまとまって見えますけど、全く違う機能を持つプログラムならショートカットを作るにしても、複数のexeに分かれていた方が都合が良いときもあります。


問題は遷移の頻度です。

dllにしたって1回目にはロードしますし、一回きりの遷移ならそのままでも複数のexeで良いはずです。

各アプリケーションは他のアプリケーションを呼び出すと終了するのですよね?

そこを常駐するようにすればプログラムのリロードはなくなるのでDLL化するのと同じ効果が得られます。


結局、そういうことは適材適所で選択することです。

AdobeのPhotoshopにはImageReadyというソフトがバンドルされていて、それぞれは連動して動きます。あの規模のソフトだとユーザは意識してメモリを空けたいときもあります。だから下手にDLL化して一緒くたにされると意識してメモリを解放することが出来なくなったりしますよね。

それに最適化にはバグのリスクもあるし、必要以上の最適化も時間の無駄です。やるなら慎重にすることをおすすめします。

id:llusall

とても参考になります。

ありがとうございました。

----------------------------------

#もう少し、回答を募集してみます。

dll, exe に関して、私はこうしているよ

見たいな意見がありましたらお願いします。

2006/11/10 09:35:01

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 yusuke6461 121 74 0 2006-11-16 20:39:24
  • id:llusall
    ネイティブ イメージ ジェネレータ (Ngen.exe)
    というのもがあるのを、今、知りました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません