Javaを使って、システムのメモリ不足を引き起こす方法を考えています。
(動作検証のためで、悪いことを考えているわけではありません^^;)
下記のプログラムでメモリを大量に消費するかなと思ったのですが、
Linux上のvmstatやtopなどで確認してもそれほど変化がありません。
while (true) {
Integer[] ii = new Integer[100];
for (int i = 0; i < 100; i++) {
ii[i] = new Integer(i);
}
}
Javaの1プロセスが使えるメモリの上限があるので、メモリを食いつぶすプロセスを
大量に実行すれば良いと考えているのですが、メモリを食いつぶす方法が分かりません。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
このプログラムだと、whileで繰り返してInteger[] ii = new Integer[100];すると、その前の繰り返しでiiに設定されていた配列は、どこからも参照されなくなるため、ガベージコレクションの対象となる。
このため、常に、現在使っているiiに設定されているInteger配列以外は、必要に応じてガベージコレクションで消去されるため、永遠にメモリ不足にはならない。メモリ不足を起こすには、生成されたオブジェクトがすべて参照された状態である必要がある。試してないが、例えば、ArrayListなどに次々とaddしていくのを繰り返したりすれば、メモリが消費される一方になるんじゃないだろうか。
No.2
- 回答日時:
私の場合は、クラスを多数作りすぎて、OutOfMemoryErrorを投げられたため、try catchで、スローされるとそこで、インスタンス化を止めるプログラムを作ったことがありますね。
大量のクラスをインスタンス化すると、イヤでも出会えますよ。
ちなみに、OSの動作等は問題は起こりませんでした。
e00083さん、
ArrayListでうまくいきましたが、try catchは参考になりました。
catchでスリープすると、良い感じの動作になりました。
ありがとうございました。
ちなみに10数個プロセスを実行すると、スワップ領域も食いつくした後、Linuxが強制的に再起動してしまいました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- iPhone(アイフォーン) iCloudのデータをiPhoneメモリに移動したい 1 2022/10/24 22:11
- その他(パソコン・周辺機器) タブレットで使用するUSBメモリについて 7 2022/05/26 14:27
- UNIX・Linux ubuntuのサーバー(virtual box)が、再起動するとデータが消えてしまいます。 4 2022/04/27 21:29
- CPU・メモリ・マザーボード Windows11アップデート後の不具合(メモリ不足)について 9 2023/01/04 11:34
- CPU・メモリ・マザーボード 「コンピューターのメモリが不足しています」と表示される2 7 2022/12/14 17:46
- Outlook(アウトルック) outlook メモリ不足 1 2022/05/31 10:16
- CPU・メモリ・マザーボード 「コンピューターのメモリが不足しています」と表示される 4 2022/12/14 02:43
- CPU・メモリ・マザーボード Windows10 64bitパソコンのメモリ 4GBから8GBへ増設 11 2023/01/25 18:20
- オンラインゲーム マインクラフトjava版が起動しない理由と改善方法について 1 2023/02/23 16:53
- CPU・メモリ・マザーボード メモリが使用可能にならない 3 2022/08/13 17:13
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語で、メモリを解放しないで...
-
VBAの配列サイズとメモリに関して
-
動的メモリとexit(C言語)
-
【C言語】再帰が時間がかかる...
-
組み込み系でのmallocについて
-
ファイルマッピング関数で失敗
-
オブジェクトの開放
-
EXCEL-VBAにてADOのレコードセ...
-
ExitProcessの関数コールについ...
-
エクセルのメモリ使用状況/Appl...
-
メモリが不足しています(VBA)
-
再帰関数について
-
H8 マイコン セクションの設...
-
C#におけるexeファイルのサイズ...
-
ルネサスマイコン(R8C) ビルド...
-
大容量のメモリ確保をスワップ...
-
LoadLibraryしたらFreeLibrary
-
エラーメッセージ
-
エラーについて
-
サーバのメモリ使用量とかを確...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語で、メモリを解放しないで...
-
VBAの配列サイズとメモリに関して
-
エクセルのメモリ使用状況/Appl...
-
sil_rew_memのメモリアクセスに...
-
メモリのセグメント違反の解決...
-
EXCEL-VBAにてADOのレコードセ...
-
C言語における再帰呼び出しの...
-
メモリが不足しています(VBA)
-
【C言語】再帰が時間がかかる...
-
メモリアロケーション異常の発...
-
エクセル キャッシュメモリー...
-
大容量のメモリ確保をスワップ...
-
ファイルマッピング関数で失敗
-
バッチファイルでの実行EXEのメ...
-
動的メモリとexit(C言語)
-
メモリ不足
-
「ヒープサイズの設定」て何?
-
「memcpy」と「strcpy」について
-
LoadLibraryしたらFreeLibrary
-
C言語初心者です。debug assert...
おすすめ情報