- PR -

外部からのGCの強制実行

1
投稿者投稿内容
take11
会議室デビュー日: 2006/02/16
投稿数: 18
投稿日時: 2007-08-10 10:36
あるJVMに対して、外部から任意のタイミングでGCを実行させることはできるでしょうか?
WebLogicServerなどは、管理コンソールからサーバーに対してGCをかけさせることができるようですが、同様のことをやりたいと思っています。

目的はサイジングで、実際に生きているクラスだけのメモリ消費量を知りたいと思っています。本番環境ですので、もうソースを改変することができず、プログラム中にgc()を埋め込んで実行させることはできない状況なのです。
よろしくお願いいたします。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-08-10 10:49
JDK1.5以降ならJMX経由でメモリに関する情報やGC操作が標準で可能です。

JDK1.4までなら、MX4J辺り(JMX実装)を組み込むことになりますが、
プログラムの改変ではなく、モジュールの追加というような感じです。
MX4Jではメモリに関するMBeanは付属していないと思いましたが、
この辺は自前で実装する必要があるのかなと思います。
ssc
会議室デビュー日: 2007/08/10
投稿数: 6
投稿日時: 2007-08-10 11:42
JDK 5.0でしたら標準ツールのjconsoleでGC実行を試してみてはいかがでしょうか。
take11
会議室デビュー日: 2006/02/16
投稿数: 18
投稿日時: 2007-08-10 11:48
かつのりさん、
sscさん

 早速のアドバイスありがとうございました。幸い1.5です。
 試してみます! また何かありましたらよろしくおねがいします。
1

スキルアップ/キャリアアップ(JOB@IT)