質問編集履歴
7
Perlについて調べたことを反映
test
CHANGED
File without changes
|
test
CHANGED
@@ -38,9 +38,9 @@
|
|
38
38
|
|
39
39
|
|Erlang|__不明__|__インクリメンタルGC?__|
|
40
40
|
|
41
|
-
|Perl5|__○
|
41
|
+
|Perl5|[__○__](http://stackoverflow.com/questions/2972021/garbage-collection-in-perl)|[__×__](http://stackoverflow.com/questions/2972021/garbage-collection-in-perl)|
|
42
42
|
|
43
|
-
|Perl6(
|
43
|
+
|Perl6(MoarVM)|__不明__|[世代別GC](http://www.moarvm.org/features.html)|
|
44
44
|
|
45
45
|
|Python(CPython)|[○](http://docs.python.jp/3/extending/extending.html#reference-counts)|[世代別GC](http://docs.python.jp/3/library/gc.html#module-gc)|
|
46
46
|
|
@@ -76,6 +76,8 @@
|
|
76
76
|
|
77
77
|
※ Rustの参照カウントは標準ライブラリとして提供されます。
|
78
78
|
|
79
|
+
※ MoarVMはPerl6のVM。RakudoもMoarVMを使っているはず。
|
80
|
+
|
79
81
|
|
80
82
|
|
81
83
|
間違い等があれば、ご指摘下さい。「無い」ことを証明するのは悪魔の証明になり得るため、しばらくして指摘が無ければ、不明部分は「×」にしていきたいと思います。世代数も調べていった方が良いかちょっと悩んでいます(世代別GCでは無い場合は1世代しかないという扱いをするとか)。
|
6
D追加、ついでに言語をネイティブ->VM->インタプリンタ順にした
test
CHANGED
File without changes
|
test
CHANGED
@@ -16,6 +16,18 @@
|
|
16
16
|
|
17
17
|
|C++(スマートポインタ)|[○](http://en.cppreference.com/w/cpp/memory/shared_ptr)|×|
|
18
18
|
|
19
|
+
|D|__不明__|[世代別GC](http://dlang.org/spec/garbage.html)|
|
20
|
+
|
21
|
+
|Go(gc)|__不明__|[__よくわからない、解説求む__](https://blog.golang.org/go15gc)|
|
22
|
+
|
23
|
+
|Go(gccgo)|__不明__|[__未実装?__](http://golang.jp/tag/gccgo)|
|
24
|
+
|
25
|
+
|Rust|[○](https://www.rust-lang.org/faq.html#is-rust-garbage-collected)|[×](https://www.rust-lang.org/faq.html#is-rust-garbage-collected)|
|
26
|
+
|
27
|
+
|Swift|[○](https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/AutomaticReferenceCounting.html)|[__×__](https://www.quora.com/Why-doesnt-Apple-Swift-adopt-the-memory-management-method-of-garbage-collection-like-in-Java)|
|
28
|
+
|
29
|
+
|Haskell(GHC)|__不明__|__世代別GC?__|
|
30
|
+
|
19
31
|
|Java(Oracle)|__不明__|[世代別GC](https://docs.oracle.com/javase/jp/8/docs/technotes/guides/vm/gctuning/introduction.html)+[コンカレントGC](https://docs.oracle.com/javase/jp/8/docs/technotes/guides/vm/gctuning/cms.html)+[G1](https://docs.oracle.com/javase/jp/8/docs/technotes/guides/vm/gctuning/g1_gc.html)|
|
20
32
|
|
21
33
|
|Java(OpenJDK)|__不明__|__不明__|
|
@@ -24,7 +36,7 @@
|
|
24
36
|
|
25
37
|
|C#(Mono)|__不明__|__不明__|
|
26
38
|
|
27
|
-
|
|
39
|
+
|Erlang|__不明__|__インクリメンタルGC?__|
|
28
40
|
|
29
41
|
|Perl5|__○?__|__不明__|
|
30
42
|
|
@@ -43,16 +55,6 @@
|
|
43
55
|
|JavaScript(JavaScriptCore)|__○?__|__M&S?__|
|
44
56
|
|
45
57
|
|JScript(Chakra)|__○?__|__M&S?__|
|
46
|
-
|
47
|
-
|Go(gc)|__不明__|[__よくわからない、解説求む__](https://blog.golang.org/go15gc)|
|
48
|
-
|
49
|
-
|Go(gccgo)|__不明__|[__未実装?__](http://golang.jp/tag/gccgo)|
|
50
|
-
|
51
|
-
|Rust|[○](https://www.rust-lang.org/faq.html#is-rust-garbage-collected)|[×](https://www.rust-lang.org/faq.html#is-rust-garbage-collected)|
|
52
|
-
|
53
|
-
|Erlang|__不明__|__インクリメンタルGC?__|
|
54
|
-
|
55
|
-
|Swift|[○](https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/AutomaticReferenceCounting.html)|[__×__](https://www.quora.com/Why-doesnt-Apple-Swift-adopt-the-memory-management-method-of-garbage-collection-like-in-Java)|
|
56
58
|
|
57
59
|
|
58
60
|
|
5
Swiftを追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -52,7 +52,7 @@
|
|
52
52
|
|
53
53
|
|Erlang|__不明__|__インクリメンタルGC?__|
|
54
54
|
|
55
|
-
|Swift|__
|
55
|
+
|Swift|[○](https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/AutomaticReferenceCounting.html)|[__×__](https://www.quora.com/Why-doesnt-Apple-Swift-adopt-the-memory-management-method-of-garbage-collection-like-in-Java)|
|
56
56
|
|
57
57
|
|
58
58
|
|
4
Rustについて追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -48,7 +48,7 @@
|
|
48
48
|
|
49
49
|
|Go(gccgo)|__不明__|[__未実装?__](http://golang.jp/tag/gccgo)|
|
50
50
|
|
51
|
-
|Rust|
|
51
|
+
|Rust|[○](https://www.rust-lang.org/faq.html#is-rust-garbage-collected)|[×](https://www.rust-lang.org/faq.html#is-rust-garbage-collected)|
|
52
52
|
|
53
53
|
|Erlang|__不明__|__インクリメンタルGC?__|
|
54
54
|
|
@@ -71,6 +71,8 @@
|
|
71
71
|
※ その他、この言語はこれを使っているという情報があれば教えて下さい。
|
72
72
|
|
73
73
|
※ Java8にはインクリメンタルGCもあるようですが、非推奨になっています。
|
74
|
+
|
75
|
+
※ Rustの参照カウントは標準ライブラリとして提供されます。
|
74
76
|
|
75
77
|
|
76
78
|
|
3
C#が参照カウントしていないのとJavaについてG1を追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -16,11 +16,11 @@
|
|
16
16
|
|
17
17
|
|C++(スマートポインタ)|[○](http://en.cppreference.com/w/cpp/memory/shared_ptr)|×|
|
18
18
|
|
19
|
-
|Java(Oracle)|__不明__|[世代別GC+コンカレントGC](https://docs.oracle.com/javase/jp/8/docs/technotes/guides/vm/gctuning/
|
19
|
+
|Java(Oracle)|__不明__|[世代別GC](https://docs.oracle.com/javase/jp/8/docs/technotes/guides/vm/gctuning/introduction.html)+[コンカレントGC](https://docs.oracle.com/javase/jp/8/docs/technotes/guides/vm/gctuning/cms.html)+[G1](https://docs.oracle.com/javase/jp/8/docs/technotes/guides/vm/gctuning/g1_gc.html)|
|
20
20
|
|
21
21
|
|Java(OpenJDK)|__不明__|__不明__|
|
22
22
|
|
23
|
-
|C#(.NET Framework)|
|
23
|
+
|C#(.NET Framework)|[×](https://blogs.msdn.microsoft.com/brada/2005/02/11/resource-management/)|[世代別GC](https://msdn.microsoft.com/ja-jp/library/ee787088(v=vs.110).aspx)|
|
24
24
|
|
25
25
|
|C#(Mono)|__不明__|__不明__|
|
26
26
|
|
@@ -70,6 +70,8 @@
|
|
70
70
|
|
71
71
|
※ その他、この言語はこれを使っているという情報があれば教えて下さい。
|
72
72
|
|
73
|
+
※ Java8にはインクリメンタルGCもあるようですが、非推奨になっています。
|
74
|
+
|
73
75
|
|
74
76
|
|
75
77
|
間違い等があれば、ご指摘下さい。「無い」ことを証明するのは悪魔の証明になり得るため、しばらくして指摘が無ければ、不明部分は「×」にしていきたいと思います。世代数も調べていった方が良いかちょっと悩んでいます(世代別GCでは無い場合は1世代しかないという扱いをするとか)。
|
@@ -92,6 +94,8 @@
|
|
92
94
|
|
93
95
|
* インクリメンタルGC: 少しずつ小まめにできるだけマーク付けをすることで、一回あたりのSTWを短くする方式。
|
94
96
|
|
97
|
+
* G1: ガベージファースト・コレクタ。ヒープをいくつかに分割して、余り使っていないヒープを収集、圧縮し、一気に解放する方式らしい。
|
98
|
+
|
95
99
|
* STW: Stop the World。時よ止まれ!止まった時の中で動けるのはGCだけ。
|
96
100
|
|
97
101
|
|
2
個人ブログも大歓迎
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
そこで、参照カウントの有無やGCの種類をまとめたいと思っています。それぞれの言語について情報(公式なドキュメント、信頼できる企業・団体のサイト、多数の技術者によってメンテナンスされているWikiなど)を知っている方は教えていただけませんか?
|
5
|
+
そこで、参照カウントの有無やGCの種類をまとめたいと思っています。それぞれの言語について情報(公式なドキュメント、信頼できる企業・団体のサイト、多数の技術者によってメンテナンスされているWikiなど)を知っている方は教えていただけませんか? 公式のみだと情報が少なくなりそうなので、この際、個人ブログ等でもかまいません(ただし、参考資料扱いにさせていただきます)。
|
6
6
|
|
7
7
|
|
8
8
|
|
1
JavaScript関係でMozillaの資料を追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -36,11 +36,13 @@
|
|
36
36
|
|
37
37
|
|Ruby(MRI)|×|[世代別GC+インクリメンタルGC](https://www.ruby-lang.org/ja/news/2014/12/25/ruby-2-2-0-released/)|
|
38
38
|
|
39
|
-
|JavaScript(V8)|__
|
39
|
+
|JavaScript(V8)|__○?__|__M&S?__|
|
40
40
|
|
41
|
-
|JavaScript(SpiderMonkey)|__
|
41
|
+
|JavaScript(SpiderMonkey)|__○?__|__M&S?__|
|
42
42
|
|
43
|
+
|JavaScript(JavaScriptCore)|__○?__|__M&S?__|
|
44
|
+
|
43
|
-
|JScript(Chakra)|__
|
45
|
+
|JScript(Chakra)|__○?__|__M&S?__|
|
44
46
|
|
45
47
|
|Go(gc)|__不明__|[__よくわからない、解説求む__](https://blog.golang.org/go15gc)|
|
46
48
|
|
@@ -64,11 +66,13 @@
|
|
64
66
|
|
65
67
|
※ JavaはJava仮想マシン、C#は.NET Framework/Mono依存の可能性があります。ScalaやKotlin、F#やVB.NETについても情報があれば教えて下さい。
|
66
68
|
|
69
|
+
※ Mozillaに[JavaScriptにおけるメモリ管理のドキュメント](https://developer.mozilla.org/ja/docs/Web/JavaScript/Memory_Management)がありますが、概要だけではっきりしません。
|
70
|
+
|
67
71
|
※ その他、この言語はこれを使っているという情報があれば教えて下さい。
|
68
72
|
|
69
73
|
|
70
74
|
|
71
|
-
間違い等があれば、ご指摘下さい。「無い」ことを証明するのは悪魔の証明になり得るため、しばらくして指摘が無ければ、不明部分は「×」にしていきたいと思います。
|
75
|
+
間違い等があれば、ご指摘下さい。「無い」ことを証明するのは悪魔の証明になり得るため、しばらくして指摘が無ければ、不明部分は「×」にしていきたいと思います。世代数も調べていった方が良いかちょっと悩んでいます(世代別GCでは無い場合は1世代しかないという扱いをするとか)。
|
72
76
|
|
73
77
|
|
74
78
|
|