- - PR -
コンスタント値専用クラスについて
«前のページへ
1|2|3
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-03-03 15:43
>Out of Memoryを防ぐためにはスレッドで周期的にメモリを監視し、もしある
>程度メモリが少なくなったらSystem.gc()を・・ これは無意味です. System.gc()を呼ぼうと呼ぶまいと,必要があればGCが自動的に 回収します.自動的に回収されないとすれば,Sysmte.gc()を呼んでも 回収されません. #自動的に回収されるけど,System.gc()を呼んでも回収されないと #いう可能性はある. それにtype safe enumのインスタンスは一組しか作らないので,通常は まず問題になりません.問題があるとすれば,型の数が優に数万とか数十万 以上のオーダーになる場合ですが,これは既にenumで扱うべきものでは ないと思います. | ||||||||
|
投稿日時: 2003-03-03 17:25
というか,そもそもstatic finalなのでガーベッジコレクタでは解放されないのでは? ClassLoaderいじくって,クラスのunloadとかすればできるんでしょうか? # やったことない(考えたこともない)のでわかりませんが・・・ あとTypesafe enumは,static finalよりはメモリを消費することは確かですよね。 static finalですら使用量を心配しているくらいですから, Typesafe enumに乗り換えるとしたら,ちゃんと使用量を確認してからがよいかと。 # とはいえ,「心配」なのと「問題」なのは違いますから, # この場合は「実際には問題ない」ほうだとは思いますが。 | ||||||||
|
投稿日時: 2003-03-03 18:09
もともとで示されているソースでは、static finalなのは配列への参照変数です。なので、不変なのは変数の値(参照先を示す値)で、参照されている配列自体はガベージコレクションが走るごとに解放されるのではないかと推測します。 いずれにせよ、いくらOutOfMemoryErrorが出ていようとも、ガベージコレクションを自力で制御しようなどと言うことは、「上級者」以外は考えないほうが良いのは間違いありません。 少なすぎる知識と誤った推論からデタラメな結論を出し、無意味なコーディングと無益なテストで時間を無駄にしているのを何件も見ました。一言声をかけてくれればやらずにすんだのに。むなしい。 | ||||||||
|
投稿日時: 2003-03-03 18:48
??? 参照が残っているのに、ガーベージコレクションの対象になると推測されたのは何故ですか? そもそも、それでガーベージコレクションされちゃったら、次にアクセスされた場合に、違うオブジェクトが生成される事になり、finalがついている事に違反しますよね。 | ||||||||
|
投稿日時: 2003-03-03 20:13
その通りです(爆) 何をボケたんだ、私は……。 突っ込みありがとうございました。 #こういう(明らかな誤りがあった)場合、元記事はコメントアウトでもしておいて方が良いのでしょうか……。 | ||||||||
«前のページへ
1|2|3
