回答編集履歴
2
修正漏れ
test
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
「リソース」とは、メモリの上に構成される、オープンとクローズの2つの性質を備えたオブジェクトという、「メモリ」よりも上位の抽象的概念です。
|
18
18
|
|
19
|
-
Dispose により「リソースの
|
19
|
+
Dispose により「リソースの解放」を行うことは、.NET のメモリの消費量には影響しません。メモリの破棄を行うのは GC であり、Dispose を行ったかどうかとは無関係なのです。
|
20
20
|
|
21
21
|
|
22
22
|
|
1
誤字修正等
test
CHANGED
@@ -12,20 +12,20 @@
|
|
12
12
|
|
13
13
|
|
14
14
|
|
15
|
-
IDisposable について勘違いしているようなのですが、IDisposable の役割は「メモリの
|
15
|
+
IDisposable について勘違いしているようなのですが、IDisposable の役割は「メモリの解放」ではなく、「リソースの解放」です。
|
16
16
|
|
17
17
|
「リソース」とは、メモリの上に構成される、オープンとクローズの2つの性質を備えたオブジェクトという、「メモリ」よりも上位の抽象的概念です。
|
18
18
|
|
19
|
-
Dispose により「リソースの開放」を行うことは、.NET のメモリの消費量には影響しません。メモリの破棄を行うのは GC であり、Dispose とは無関係なのです。
|
19
|
+
Dispose により「リソースの開放」を行うことは、.NET のメモリの消費量には影響しません。メモリの破棄を行うのは GC であり、Dispose を行ったかどうかとは無関係なのです。
|
20
20
|
|
21
21
|
|
22
22
|
|
23
|
-
GC はゴミとなったメモリでもしばらく蓄え続け、あるタイミングで一気に
|
23
|
+
GC はゴミとなったメモリでもしばらく蓄え続け、あるタイミングで一気に解放します。そのため、大きく上がって下がってを繰り返すグラフになります。
|
24
24
|
|
25
25
|
これは、GC を実行すること自体がそこそこコストがかかる動作なので、ある程度溜め込んで一気にやった方が (速度的に) 効率的だからです。メモリの消費を最小限に抑えることを諦め、速度を優先したということです。
|
26
26
|
|
27
27
|
|
28
28
|
|
29
|
-
もし、なんとしてもメモリ使用量グラフを平坦に保ちたいのであれば、何かオブジェクトを使い終わる度にすぐさま手動で GC を実行することでおそらく実現できるでしょう。
|
29
|
+
もし、なんとしてもメモリ使用量グラフを平坦に保ちたいのであれば、何かオブジェクトを使い終わる度にすぐさま「手動で GC を実行する」ことでおそらく実現できるでしょう。
|
30
30
|
|
31
31
|
ただし、実行速度はお話にならないほど低下すると思います。
|