- - PR -
.NETで作られたアプリの起動のオーバーヘッドってどうなんでしょうか?
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-03-23 02:44
最近プログラミングから離れている元Java屋の乳牛と申します。
.NET系はまったく初めてです。 久々に何かプログラミングをしてみようと意気込んで、ローカルファイルのブックマークアプリみたいなのを考えています。ファイルやフォルダを右クリックして”送る”とブックマークされるようなものです。(”お気に入り”ではなくSqliteにブックマーク情報を溜め込んで、ごちゃごちゃやろうと考えています) この形式だと”送る”のタイミングで毎回アプリが起動されることになると思うのですが、ここで.NETの場合の起動速度を気にしています。 元Java屋なのでCLRをJavaVMと同様なものとして認識しているのですが、CLRはOSの一部みたいなものなのでJavaVMのようにVM起動のオーバヘッドが大きい…ということはないのでしょうか? 参考になるページなどがありましたら教えてください。 よろしくお願いします。 #そんなに気になるならVC++で書けと言う話もあるのですが、ブックマークの #メタ情報入力のフォームを表示したくて、フォームのコードをMFCで書くより #C#の方が簡単そうだな…という判断です。 #単にC#を使ってみたいと言うのもあります。 | ||||||||||||
|
投稿日時: 2008-03-23 09:34
> .NETで作られたアプリの起動のオーバーヘッドってどうなんでしょうか?
以前webで調べたときのキーワードだけ。 実際に検証していないので。間違っているかもしれません。 ・CLRの起動 XPまではexe実行時に起動する。VistaからはOS側で起動済みになる。 ・MSILのコンパイル JITコンパイラを使うか、NGen.exeで事前にコンパイルしておくか。 ・アプリケーションの起動 http://msdn2.microsoft.com/ja-jp/magazine/cc337892.aspx > ローカルファイルのブックマークアプリ ランチャーみたいなイメージだとすると、大人しく常駐アプリにしておいた方が無難だと思います。 | ||||||||||||
|
投稿日時: 2008-03-23 09:40
とは限りません。Shell Extension にするという手もあります。 その場合、ファイル形式としては .dll になり、explorer.exe にアタッチされて動作することになります。 | ||||||||||||
|
投稿日時: 2008-03-23 12:30
これをマネージコードで書いてはいけません。 http://blogs.msdn.com/oldnewthing/archive/2006/12/18/1317290.aspx 参考 http://blogs.wankuma.com/shannon/archive/2007/01/06/54837.aspx | ||||||||||||
|
投稿日時: 2008-03-23 12:52
VistaとCLRを組み合わせて検索したのですが、それらしい情報に当たりませんでした。 すみませんが、情報源頂けないでしょうか。 SuperFetchなるもので使いそうなファイルは事前に読み込まれる可能性があるというのは読みましたが、「起動済み」というものとは違うと判断しました。 | ||||||||||||
|
投稿日時: 2008-03-23 13:42
僕も聞いたことがないな。 CLR は簡単に言えば .dll の集合で、各プロセス空間に個別に読み込まれて「ユーザプログラムの下請け」的に実行されるもの(故に、1個前の投稿のような問題が発生し得る)なので、OS 起動時に何を起動するって話なんだろ? .NET 2.0 以降は GAC に登録されたアセンブリを JIT してまわるサービスが追加されてますが、これのことを言っってるのかな? あるいは、「OSにデフォルトで .NET ランタイムがインストールされている」のを取り違えているのか。
それは .NET とはまた別の話ですね。 | ||||||||||||
|
投稿日時: 2008-03-23 13:47
Office や IE は最新のランタイムだけを使ってくれるんだけどねぇ。 | ||||||||||||
|
投稿日時: 2008-03-23 18:02
すみません。出所不明です。「CLRの起動」は間違いかもしれません。 「初回起動を高速化する何か」がVista以降だと読んだ記憶がありました。 それとブログにキーワードが載っていましたので参考までに。 http://blog.yaju.jp/200703/article_6.html http://weblogs.asp.net/scottgu/archive/2008/02/19/net-3-5-client-product-roadmap.aspx |