kkamegawa(かめがわ かずし):@kkamegawa       kkamegawa@clueup.org   http://d.hatena.ne.jp/kkamegawa
   かめがわ かずし   某企業でフロントエンドからバックエンドま    で手広くいろんなことやってます   最近は@ITでチューニングやらデバッガや    ら比較的ニッチなところを書いています。    http://www.atmar...
知っているようで知らない?
 長ったらしく書くとApplication Domain。 マネージプロセスが必ず一つ持ち、多く作れ  ます。 最初の一つ以外いつでも削除できます。 いくつかの例外を除いて、ドメインごとにアセ  ンブリを管理します。 作ったAppDo...
AppDomain #1(既定)                                AppDomain #2                     Hoo.exe                                  ...
   AppDomain.Unload    (AppDomain.CurrentDomain);    で終わらせようとするとどうなる?      CannotAppDomainUnloadExceptionが      スローされる   ...
 AppDomainってどのくらい作れる? メモリへのインパクトは?
 1000個のAppDomain作成/消去  (ドメイン固有のアセンブリ呼び出しはなし) 作成はあまり時間かからないが、消去は結構  かかっている Loader Heap, Working Set, Private  bytesはAppD...
   http://support.microsoft.com/kb/979744/j    a (パッチあり)    .NET Framework 2.0 ベースの Multi-    AppDomain アプリケーションを実行したと   ...
普通やりませんが…
 All-In-One-Code-Frameworkにある  CppHostCLRというソリューションがサンプル  http://1code.codeplex.com/ ICorRuntimeHost, ICLRRuntimeHostを使 ...
CLRCreateInstance ICLRMetaHost->GetRuntime()ICLRRuntimeInfo->IsLoadable()ICLRRuntimeInfo->GetInferface()   ICorRuntimeHost...
 CLRの開始まではそんなに難しくない アンマネージドからマネージのインスタンスメ  ソッドを呼び出そうとすると結構大変。 staticメソッド呼ぶだけなら  ICLRRuntimeHost->   ExecuteInDefaultApp...
 Internet Explorer IIS     IIS6まではWorker ProcessがCLRをホストして      いました。     IIS7以降の統合モードではIIS自身がホストしま      す。クラッシックモードでは...
 たぶん99.9%の人は複数ドメイン作らなくても  やっていけます。昔はプラグインのために使う  こともありましたが、今はMEFがありますし。 そして、CLRのホストは99.999%くらいの人は  知らなくてもやっていけるかと思います。 ...
   プログラミング.NET Framework 第二版   プログラミング.NET Framework 第三版   Root of .NET Framework   MSDN Library(ホストの概要)    http://msd...
第8回c#ユーザー会-AppDomain
第8回c#ユーザー会-AppDomain
第8回c#ユーザー会-AppDomain
第8回c#ユーザー会-AppDomain
Upcoming SlideShare
Loading in...5
×

第8回c#ユーザー会-AppDomain

1,503

Published on

The 8th C# Users group in Japan.Show

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,503
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

第8回c#ユーザー会-AppDomain

  1. 1. kkamegawa(かめがわ かずし):@kkamegawa kkamegawa@clueup.org http://d.hatena.ne.jp/kkamegawa
  2. 2.  かめがわ かずし 某企業でフロントエンドからバックエンドま で手広くいろんなことやってます 最近は@ITでチューニングやらデバッガや ら比較的ニッチなところを書いています。 http://www.atmarkit.co.jp/fdotnet/chu shin/vsperf_index/index.html アプリケーションのギアを上げよう http://www.atmarkit.co.jp/fdotnet/chu shin/vsdebug_index/index.html Visual Studioデバッグ手法
  3. 3. 知っているようで知らない?
  4. 4.  長ったらしく書くとApplication Domain。 マネージプロセスが必ず一つ持ち、多く作れ ます。 最初の一つ以外いつでも削除できます。 いくつかの例外を除いて、ドメインごとにアセ ンブリを管理します。 作ったAppDomainを削除すると、ドメイン内 で呼び出しているアセンブリも一緒にアンロー ドされます。
  5. 5. AppDomain #1(既定) AppDomain #2 Hoo.exe Bar1.dllローダーヒープ ローダーヒープ Bar1.dll Bar2.dll System.dll System.dll ドメイン中立アセンブリ ローダーヒープ MSCorLib.dll 必要に応じてAppDomainを作成 (普通は既定の一つでいい 名前は自分で考えよう) .NET Framework 4 MSCorEE.DLL / CLR.DLL MSCorEEi.DLL (shim) .NET Framework 2.0/3.0/3.5 MSCorWks.DLL
  6. 6.  AppDomain.Unload (AppDomain.CurrentDomain); で終わらせようとするとどうなる? CannotAppDomainUnloadExceptionが スローされる (ま、普通やりませんよね)
  7. 7.  AppDomainってどのくらい作れる? メモリへのインパクトは?
  8. 8.  1000個のAppDomain作成/消去 (ドメイン固有のアセンブリ呼び出しはなし) 作成はあまり時間かからないが、消去は結構 かかっている Loader Heap, Working Set, Private bytesはAppDomainを消去してもそれなりに。 Loader Heapは適当なところでGCが発生
  9. 9.  http://support.microsoft.com/kb/979744/j a (パッチあり) .NET Framework 2.0 ベースの Multi- AppDomain アプリケーションを実行したと きにアプリケーションが応答しなくなる
  10. 10. 普通やりませんが…
  11. 11.  All-In-One-Code-Frameworkにある CppHostCLRというソリューションがサンプル http://1code.codeplex.com/ ICorRuntimeHost, ICLRRuntimeHostを使 用したサンプル。ただし、どちらもCLR2以降し かロードできない (今更.NET 1.1のホスティングいらないよね?)
  12. 12. CLRCreateInstance ICLRMetaHost->GetRuntime()ICLRRuntimeInfo->IsLoadable()ICLRRuntimeInfo->GetInferface() ICorRuntimeHost->Start()
  13. 13.  CLRの開始まではそんなに難しくない アンマネージドからマネージのインスタンスメ ソッドを呼び出そうとすると結構大変。 staticメソッド呼ぶだけなら ICLRRuntimeHost-> ExecuteInDefaultAppDomain()でOK お仕事であるいは趣味で「.NETのこのクラスラ イブラリ使いたい」と思ったときはどうぞ
  14. 14.  Internet Explorer IIS  IIS6まではWorker ProcessがCLRをホストして いました。  IIS7以降の統合モードではIIS自身がホストしま す。クラッシックモードではWorker Processが使 われます。 SQL Server 2005以降(SQLCLRがある)。 PowerShell
  15. 15.  たぶん99.9%の人は複数ドメイン作らなくても やっていけます。昔はプラグインのために使う こともありましたが、今はMEFがありますし。 そして、CLRのホストは99.999%くらいの人は 知らなくてもやっていけるかと思います。 ここもMCPの試験範囲なので出ますよ。 2nd時代にこの本だけ読んでMCP受けました。
  16. 16.  プログラミング.NET Framework 第二版 プログラミング.NET Framework 第三版 Root of .NET Framework MSDN Library(ホストの概要) http://msdn.microsoft.com/ja- jp/library/dd380850.aspx MSDN Library(アプリケーションドメイン) http://msdn.microsoft.com/ja- jp/library/2bh4z9hs.aspx
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×