- - PR -
CLRはアプリケーション動作中、何をしているのでしょうか?
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-02-10 18:17
教えて下さい。
CLRは、アプリケーションの実行中、 オブジェクトのライフタイム管理及びオブジェクト への参照を管理し、メモリの解放等を行っていると 理解していますが、この際、具体的には何をやって いるのでしょうか? 特に、”オブジェクト”が具体的に指すものが気に なっています。”クラス”なのか”インスタンス” なのか、それとも”メソッド”又は”プロパティ” なのでしょうか? オブジェクトのライフタイム管理というと、クラスから インスタンスが生成され、該インスタンスが消滅する までの管理を行うのでしょうか? その場合、オブジェクトの参照とは、インスタンス内の 各メソッド実行中に他のクラスのメソッドをコールする ことだと理解してもいいのでしょうか? また、上記の場合、ライフタイム管理はインスタンスの 存在する間の管理ということになると思いますが、その 中でどのメソッドやプロパティが呼出されたかの管理は 行わないのでしょうか?行う場合はどういう管理を行う のでしょうか? CLRがアプリケーションの実行中に管理しているデータ はどのような項目なのでしょうか? 初歩的な質問で申し訳ありませんがご教示頂けますと 幸いです。宜しくお願いいたします。 |
|
投稿日時: 2003-02-10 18:23
まずはこの本を読まれるとよいかと。
http://www.atmarkit.co.jp/fdotnet/bookreview/prog_dotnetfw/prog_dotnetfw.html |
|
投稿日時: 2003-02-10 19:44
>CLRは、アプリケーションの実行中、
>オブジェクトのライフタイム管理及びオブジェクトへの参照を >管理し、メモリの解放等を行っていると理解していますが、 >この際、具体的には何をやっているのでしょうか? 少々回りくどい言い方をしてますが, これって要するにGCということでは? #参照を管理し,必要に応じて死んだインスタンスを識別, #その領域を回収して利用可能な状態にする. #「死んだ」というのは「マーキングルートより到達不可能である」 #ことで,必ずしも「ユーザーが今後利用するつもりがない」と #同じではない. #GCなら参考文献は山ほどあります. まあ,仮想マシンはなにもGCだけを行ってるわけじゃないでしょうけどね. |
1