tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルガベージコレクションの発生について
記事No2789
投稿日: 2005/12/19(Mon) 20:40
投稿者jyama
[OSのVer]:Windows    [VBのVer]:VB.NET  

以下のOS、メモリの構成のマシン上で VB.NET(.NET Framework 1.1)で
作成したプログラムを実行させています。

物理メモリ:1GB
仮想メモリ:1.5GB〜3.0GB
OS   :Windows 2003 Server EE

このような状況で、タスクマネージャのパフォーマンスで 「PF 使用量」を
確認すると 1.33GB となっています。また、パフォーマンス カウンタで
「.NET CLR Memory(_Global_)」を追加して、1分間隔で 2時間ほど監視
したのですが、いずれのカウンタも "0" のままです。

CLRでのカベージコレクションの発生を確認したいのですが、これはガベージ
コレクションが発生していないということなのでしょうか?
発生していない場合、強制的以外(System.GC 以外)で発生させるには
どのようにすればよいのでしょうか?(設定などあるのでしょうか?)

[ツリー表示へ]
タイトルRe: ガベージコレクションの発生について
記事No2792
投稿日: 2005/12/20(Tue) 10:10
投稿者魔界の仮面弁士
> CLRでのカベージコレクションの発生を確認したいのですが、
ガベージコレクトされれば、Finalizeメソッドが呼び出されますので、
プログラム的に判断する事はできるかと思います。

ガベージコレクタの動作について、一応資料を貼っておきます。すでにご存知かも知れませんが。
hhttp://www.microsoft.com/japan/msdn/net/mag00/GCI.asp
hhttp://www.microsoft.com/japan/msdn/net/mag00/GCI2.asp

> 1分間隔で
たとえば、数秒間隔で記録してみるとどうなりますか?

> いずれのカウンタも "0" のままです。
System.GC を手動で発行したときには、記録されるのでしょうか?

> これはガベージコレクションが発生していないということなのでしょうか?
# 発生していたけれど、カウンタに記録されなかった…と言う事だったりして。(汗)

[ツリー表示へ]
タイトルRe^2: ガベージコレクションの発生について
記事No2793
投稿日: 2005/12/20(Tue) 10:39
投稿者jyama
[OSのVer]:Windows    [VBのVer]:VB.NET  

ご回答ありがとうございます。

> > CLRでのカベージコレクションの発生を確認したいのですが、
> ガベージコレクトされれば、Finalizeメソッドが呼び出されますので、
> プログラム的に判断する事はできるかと思います。
>

既に確認していました。

>
> > 1分間隔で
> たとえば、数秒間隔で記録してみるとどうなりますか?
>

1秒間隔で記録してみます。

> > いずれのカウンタも "0" のままです。
> System.GC を手動で発行したときには、記録されるのでしょうか?
>

VB.NET で System.GC を発行したのですが、記録されませんでした。

※ JVM みたいに、.NET には 割り当てるヒープのサイズとか、
  ガベージコレクションのログ出力とか 出来ないんですかね?
  ネットで検索してみたけど、CLR のチューニング手法って
  ないみたいですね。

[ツリー表示へ]
タイトルRe^3: ガベージコレクションの発生について
記事No2799
投稿日: 2005/12/20(Tue) 16:04
投稿者jyama
[OSのVer]:Windows    [VBのVer]:VB.NET  
> >
> > > 1分間隔で
> > たとえば、数秒間隔で記録してみるとどうなりますか?
> >
>
> 1秒間隔で記録してみます。
>

1秒間隔で記録して見ましたが、すべて 0 でした。
ガベージコレクションは発生していないのですかね?
それとも「.NET CLR Memory(_Global_)」ではガベー
ジの情報をロギングできないのですかね?

どなたか教えてください。よろしくお願いします。

[ツリー表示へ]
タイトルRe^4: ガベージコレクションの発生について
記事No2800
投稿日: 2005/12/20(Tue) 17:41
投稿者魔界の仮面弁士
> 1秒間隔で記録して見ましたが、すべて 0 でした。

当方で、perfmon.exe (ログではなく、モニタの方)を使って、
1秒毎サンプリングで記録してみましたが、アプリの起動/操作/終了などに伴い、
カウンタの上限が確認できました。


もしかして、環境側に問題があったりはしませんか?
unlodctr / lodctr で、カウンタの再登録を行ってみては如何でしょう。

[ツリー表示へ]
タイトルRe^5: ガベージコレクションの発生について
記事No2805
投稿日: 2005/12/21(Wed) 12:32
投稿者jyama
[OSのVer]:Windows    [VBのVer]:VB.NET  

> > 1秒間隔で記録して見ましたが、すべて 0 でした。
>
> 当方で、perfmon.exe (ログではなく、モニタの方)を使って、
> 1秒毎サンプリングで記録してみましたが、アプリの起動/操作/終了などに伴い、
> カウンタの上限が確認できました。
>
>
> もしかして、環境側に問題があったりはしませんか?
> unlodctr / lodctr で、カウンタの再登録を行ってみては如何でしょう。

ありがとうございます。確認してみます。

[ツリー表示へ]
タイトルRe^6: ガベージコレクションの発生について
記事No2811
投稿日: 2005/12/22(Thu) 09:06
投稿者jyama
[OSのVer]:Windows    [VBのVer]:VB.NET  
> [OSのVer]:Windows    [VBのVer]:VB.NET  
>
> > > 1秒間隔で記録して見ましたが、すべて 0 でした。
> >
> > 当方で、perfmon.exe (ログではなく、モニタの方)を使って、
> > 1秒毎サンプリングで記録してみましたが、アプリの起動/操作/終了などに伴い、
> > カウンタの上限が確認できました。
> >

perfmon.exe で確認できました ありがとうございました。

[ツリー表示へ]