- PR -

javaVMのヒープサイズについて質問です。

投稿者投稿内容
roland
会議室デビュー日: 2004/10/27
投稿数: 4
投稿日時: 2004-10-27 20:54
皆様、始めまして。
現在javaAppletの開発を行っていますが、ちょっと困ったことになっています。
javaVMに対してjavaPluginコントロールパネル以外から、
ヒープサイズの設定が可能であるか?ということです。
試しに以下のような設定を行ってみたのですが、ヒープサイズは
有効になっていませんでした。。
Properties sysProp = System.getProperties();
sysProp.setProperty("javaplugin.maxHeapSize", "200m");

getPropertyで確認するとmaxHeapSizeは変更されているのですが、
その設定したヒープサイズを使用していないようです。
javaPluginコントロールパネルから、-Xmx200Mとやるとうまく動作するため
実証はできていると考えています。

そこで2点質問なのですが。。
javaPluginコントロールパネルから設定するヒープサイズと、
システムプロパティのヒープサイズは同じモノと考えてよいのでしょうか?
setPropertyで設定を行った後に、javaVMをロードする?ような
必要があるのでしょうか?

JDK:j2se1.4.2(vmも同様です)
OS :winXP(IE6)
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-10-27 21:41
ヒープサイズなどはVMを起動する際に評価されるものですから動的に変更しても反映されないと思います。
roland
会議室デビュー日: 2004/10/27
投稿数: 4
投稿日時: 2004-10-28 11:04
インギさん、お返事ありがとうございます。
やはり動的なものは無理なんですかね。。
私もそうは思っていたりはしましたが、端末の数が多くなると
javaPluginコントロールパネルからの設定は辛いですね。
サイレントインストールでできるかな?
他の方法も考えてみます。

何か方法をご存知の方がいらっしゃれば、是非ご教授ください。
植村
会議室デビュー日: 2004/10/28
投稿数: 11
投稿日時: 2004-10-28 19:17
引用:

端末の数が多くなると



いろいろな問題がありますよね。ユーザに設定させるわけにもいかないとか。
ヒープサイズのチェックを行うapplet内で、もし想定するヒープサイズの
設定がされていない場合は、設定をappletから変更するというのはどうですか?
policyの設定次第でできそうですが、今度はそのpolicyをどうするんだという
話になりそうですが…。

JREをインストールする時にヒープサイズを大きくしても、ユーザが手動で小さく
設定してしまう場合もありなわけで、結局はそういった環境は利用者に設定させる
べきだと割り切るしかないような気がします。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-10-29 09:04
そいえば JavaWebStartなら jnlp ファイルに JVM のパラメータ記述できますね。
roland
会議室デビュー日: 2004/10/27
投稿数: 4
投稿日時: 2004-10-29 13:55
植村さん、インギさん、お返事ありがとうございます。
policyで設定とは、思いつきませんでした。
Allpermissionを付けたことくらいしかないので、ちょっと勉強してみます。
appletからヒープサイズを変更してもjavaVMは既に起動されているため、
設定したヒープサイズが反映されて動作はしてくれないようです。
といって、ブラウザを起動するとヒープサイズは元通りですし。。
ヒープサイズの修正はできるのだから、その設定で起動させる方法も
あると思うのですが。。

JavaWebStartについては、全く知らなかったので勉強してみます。
ありがとうございました。
利用されている方は多いのですかね?
なかなか便利なものであるようですが。。
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2004-10-29 14:12
unibon です。こんにちわ。

Sun の Java だとデフォルトが 64MB であり、動的に変更できず、たしかに不便です。これはぜひ改善してほしい点だと思います。(Microsoft VM だと必要に応じて勝手に変更してくれるので楽でしたが。)
ただ、64MB あれば、applet と名が付いている割には、結構大きいとも言えなくもありません。プログラムの側を変更して 64MB 内に納まるようにしたほうが、手っ取り早いケースも少なからずあるかもしれません。
メモリーの問題は、結局は、開発の手間との天秤になり、どちらをとるかは悩ましいところですが。
roland
会議室デビュー日: 2004/10/27
投稿数: 4
投稿日時: 2004-10-29 14:51
unibonさん、お返事ありがとうございます。
確かに大抵の場合は問題ないのです。
今回applet上でイメージの編集を行うという要望を取り込んだのですが、
このイメージファイルがtiff形式であるというのが大問題でして。。
1個のファイルで13Mくらいいくんです。
数個のイメージファイルを読み込むだけでデフォルトを使い切ってしまう
ということも発生している状況です。
現状最大で270Mも必要なんです。。
それも当初の330Mから絞り込んで、やっとここまできたわけで。。

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