- C言語なら俺に聞け(入門編)Part 127©2ch.net
457 :デフォルトの名無しさん[]:2015/04/15(水) 11:43:17.67 ID:elzEhIzV - ふつうJITコンパイラって機械語でなくJAVA VMのように仮想マシンみたいなところで動かしてるのでは?
C#は違うようだが。 予想ではDLLの仕組みと同様で必要に応じてビルドしてそれをDLLのような形で保存しておき動的にロードするのでは?
|
- C言語なら俺に聞け(入門編)Part 127©2ch.net
460 :デフォルトの名無しさん[]:2015/04/15(水) 11:55:13.21 ID:elzEhIzV - nodejsはオープンソースだった思うし、仮想マシンなどが動作せずにJITコンパイルしているらしいから
これがいいんじゃないか。
|
- C言語なら俺に聞け(入門編)Part 127©2ch.net
461 :デフォルトの名無しさん[]:2015/04/15(水) 11:59:51.95 ID:elzEhIzV - .NET Frameworkの仕組みを再確認、不測のトラブルに備えよう:CodeZine
EXEファイルを実行すると、まずCPUアーキテクチャ(32bit/64bit等)に合わせて「MScorEE.dll」、.NET Frameworkのバージョンに合わせて「MSCorWks.dll」が選定される。 続いて、アセンブリローダにより、アセンブリのマニフェスト/署名確認、アセンブリのバージョン選定/検索、パーミッションの設定などが行われる。 また、中間言語MSILのコードは、JIT(Just In Time)コンパイラにより、実行可能なネイティブコードにコンパイルされた後、メモリに格納され、実行される(一度コンパイルされたものは再度コンパイルされない)。 アセンブリの配置場所・配置方法 .NET Frameworkでは、アセンブリ単位で高度なバージョン管理が行われるため、従来のようなレジストリへの登録が不要。 必要なアセンブリは、GAC(Global Assembly Cache)と呼ばれる共有スペース、構成ファイルの<codeBase>に記述されている場所の順で検索され、見つからない場合はProbingというプロセスに入る。 アプリケーションが存在するディレクトリ以下で「アセンブリ名+.dll/.exe」が検索され、それでも見つからないと例外(System.IO.FileNotFoundException)となる。 なお、原則Probingは避け、GACや<codeBase>を利用すべきとしている。 なお、GACに登録するには厳密名を持つ必要があり、登録されているアセンブリ一覧は「Windows」フォルダ直下の「assembly」フォルダで確認できる(実際にアセンブリがこのディレクトリに存在するわけではない)。 アセンブリの配置方法には、XCopy(ツリー構造のままコピー)による単純な配置、Windowsインストーラ(.msiファイル)による配置、ClickOnce(インターネット経由のインストール)による配置がある。 http://codezine.jp/article/detail/2236
|