回答編集履歴

3

誤記訂正

2017/03/05 14:20

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -1,4 +1,4 @@
1
- GCをやって不要なメモリーを回収しきった際の残りのメモリーがRESTであったときRESTより大きなサイズを確保しようとして発生するのがOutOfMemoryErrorですが当然ながら確保しようとしたメモリーはまだ未確保状態エラーが発生するのでまだメモリー残量RESTのままです。
1
+ GCをやって不要なメモリーを回収しきった際の残りのメモリーがRESTであったときRESTより大きなサイズを確保しようとして発生するのがOutOfMemoryErrorですが当然ながら確保失敗なのでまだメモリー残量RESTのままの状態エラー処理が始まります。
2
2
 
3
3
 
4
4
 
@@ -6,8 +6,8 @@
6
6
 
7
7
 
8
8
 
9
- しかしながら巨大なメモリーを確保しようとしてこのエラーが発生するのではなく少しずつメモリーを圧迫していきながら最後にRESTが非常に小さな値のときに止めのnewをしようとした場合・・・catch節で利用できるRESTのサイズが非常に小さくなるためcatch内で例外処理のためのnewしようとしても、それさえできないということが起こるかもしれません。そうした場合は正しい例外処理ができるとは期待できないでしょう。
9
+ しかしながら巨大なメモリーを確保しようとしてこのエラーが発生するのではなく少しずつメモリーを圧迫していきながら最後に(RESTが非常に小さな値のときに)止めのnewをしようとした場合catch節で利用可能なメモリー残量が非常に小さため小さなオブジェクトをnewしようとしても、それさえできないということが起こるかもしれません。そうした場合は正しい例外処理ができるとは期待できないでしょう。
10
10
 
11
11
 
12
12
 
13
- しかしアプリケーションを設計するときそのような状況にはならないように「メモリー見積もりをしておく」ことが普通でしょうからメモリーリークバグがない限りメモリー不足のリカバリーができないという状況には普通ならないと思います。
13
+ しかしアプリケーションを設計するときそのような状況にはならないように「メモリー見積もりをしておく」ことが普通でしょうからメモリーリークバグがない限りメモリー不足のリカバリーができないという状況には普通ならないと思います。

2

誤記訂正

2017/03/05 14:20

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -1,4 +1,4 @@
1
- GCをやって不要なメモリーを回収しきったとした際の残りのメモリーがRESTであったときRESTより大きなサイズを確保しようとして発生するのがOutOfMemoryErrorですが当然ながら確保しようとしたメモリーはまだ未確保の状態でエラーが発生するのでまだメモリー残量はRESTのままです。
1
+ GCをやって不要なメモリーを回収しきった際の残りのメモリーがRESTであったときRESTより大きなサイズを確保しようとして発生するのがOutOfMemoryErrorですが当然ながら確保しようとしたメモリーはまだ未確保の状態でエラーが発生するのでまだメモリー残量はRESTのままです。
2
2
 
3
3
 
4
4
 

1

説明文を訂正

2017/03/05 01:02

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -10,4 +10,4 @@
10
10
 
11
11
 
12
12
 
13
- しかしアプリケーションを設計するときそのような状況にはならないように「必要最小限のメモリーをVMが利用可能にメモリー見積もりをしておく」ことが普通でしょうからメモリーリークバグがない限りメモリー不足のリカバリーができないという状況には普通ならないと思います。
13
+ しかしアプリケーションを設計するときそのような状況にはならないように「メモリー見積もりをしておく」ことが普通でしょうからメモリーリークバグがない限りメモリー不足のリカバリーができないという状況には普通ならないと思います。