プログラミングの上級者来てくれや

■ このスレッドは過去ログ倉庫に格納されています
1以下、5ちゃんねるからVIPがお送りします2018/12/12(水) 22:27:10.612ID:2U8G1bt8p
List<SampleClass> list = new List<>();
list.add(new SampleClass());
list.clear();

上でリストがクリアされた時newしたサンプルクラスのインスタンスへの参照って無くなると思うんだがこのデータはGCが回収してくれるの?

2以下、5ちゃんねるからVIPがお送りします2018/12/12(水) 22:28:50.122ID:ylHiO7x/0
わかんねょ!
Python出かけボケ
しね!!!!!!!

3以下、5ちゃんねるからVIPがお送りします2018/12/12(水) 22:28:56.526ID:Mx9TKteyM
うん

4以下、5ちゃんねるからVIPがお送りします2018/12/12(水) 22:29:52.412ID:IOgQdeUZa
アセンブラじゃねえのかよ

5以下、5ちゃんねるからVIPがお送りします2018/12/12(水) 22:30:38.002ID:2U8G1bt8p
>>3
本当に?
GC仕事してくれるの?

6以下、5ちゃんねるからVIPがお送りします2018/12/12(水) 22:30:52.415ID:Y8uB+YQ00
どうだろうね
裏でどんなことやってるのかな
パフォーマンスのためにある程度はメモリ確保したままでキャッシュ的なことしてるか全くしてないか
空っぽだからっていちいち解放するのかどうか

知らん

7以下、5ちゃんねるからVIPがお送りします2018/12/12(水) 22:33:30.119ID:Mx9TKteyM
>>5
-verbose:gcでgc確認してみ
それかメモリダンプとるか

8以下、5ちゃんねるからVIPがお送りします2018/12/12(水) 22:34:43.080ID:Mx9TKteyM
gcの対象になるだけで実際に回収されるタイミングはまた別な
即時回収ではないぞ

9以下、5ちゃんねるからVIPがお送りします2018/12/12(水) 22:34:54.854ID:oHIycNzma
JavaならListはインタフェースやぞ
実装によるが普通はGCするやろ
GCせんでメモリ残り続けたらメモリリークや

10以下、5ちゃんねるからVIPがお送りします2018/12/12(水) 22:36:42.595ID:2U8G1bt8p
>>2
list = []
list.append(SampleClass())
list.clear()

11以下、5ちゃんねるからVIPがお送りします2018/12/12(水) 22:37:18.726ID:PcFe5daiM
言語仕様、gcの仕様によるだろうが
多分回収するのが普通だろうな

12以下、5ちゃんねるからVIPがお送りします2018/12/12(水) 22:38:40.486ID:hW23rVVI0
gcあてにせんと
きちんと初期化しろ

13以下、5ちゃんねるからVIPがお送りします2018/12/12(水) 22:43:48.006ID:2U8G1bt8p
>>7
-verbose:gcってなんぞや
ググっても出ない…

>>8
まあそうか…
言語によってはGC発動するメソッドがあったような…
Javaだっけ

14以下、5ちゃんねるからVIPがお送りします2018/12/12(水) 22:44:37.517ID:2U8G1bt8p
>>9
JavaとC#を混ぜてしまった…

15以下、5ちゃんねるからVIPがお送りします2018/12/12(水) 22:45:46.400ID:Mx9TKteyM
Javaだと思って答えてた
じゃなかったらすまん

16以下、5ちゃんねるからVIPがお送りします2018/12/12(水) 22:45:59.108ID:ARgdY4fj0
自作しちゃえよw
そんなにシビアなことしたいならリストぐらい自作しちゃえよ即時解放するやつを

17以下、5ちゃんねるからVIPがお送りします2018/12/12(水) 22:48:21.867ID:2U8G1bt8p
>>14
言語は特に考えてなかった…

>>15
高級な言語でそんなの自作できるのか?

18以下、5ちゃんねるからVIPがお送りします2018/12/12(水) 22:48:52.135ID:2U8G1bt8p
安価ずれてた
>>15

>>16
だった

19以下、5ちゃんねるからVIPがお送りします2018/12/12(水) 22:52:17.821ID:Mx9TKteyM
言語に依らない一般的なgcって?っていう話なら>>11の言う通りやろな
自力でメモリの確保と解放するならできるで

20以下、5ちゃんねるからVIPがお送りします2018/12/12(水) 22:56:13.647ID:2U8G1bt8p
>>19
動的メモリ確保ってC以外で出来るのかね
聞いたことないぜ

21以下、5ちゃんねるからVIPがお送りします2018/12/12(水) 23:16:56.166ID:Mx9TKteyM
goとかC++は言わずもがな
Javaならダイレクトバッファとかメモリマップトファイルを使ったことある
C#とかでもできるんじゃね?
スクリプト系はよく分からん

22以下、5ちゃんねるからVIPがお送りします2018/12/12(水) 23:18:07.375ID:fefn6E7a0
それで回収できなかったらGCの意味ねえだろ

23以下、5ちゃんねるからVIPがお送りします2018/12/12(水) 23:18:45.516ID:aFbMj5lO0
そもそもなんでGCのタイミングを気にしているの?

24以下、5ちゃんねるからVIPがお送りします2018/12/12(水) 23:23:15.656ID:aFbMj5lO0
C#ならSampleClassにデストラクタを実装してブレークポイントを張って確認する手もあるな

25以下、5ちゃんねるからVIPがお送りします2018/12/12(水) 23:31:51.084ID:fefn6E7a0
ちなみに世代別GCでは、一般に手動でGCを呼ぶと速度のみならずメモリ回収効率まで悪化する
GCと実行中のコードの双方が内部で何をやっているかを理解した上で使わなければ全くの逆効果だから注意しろよ

26以下、5ちゃんねるからVIPがお送りします2018/12/12(水) 23:53:14.415ID:v7mSuIs/0
デストラクタ定義してログ吐かせりゃちゃんと破棄してるか分かるだろ
気になるならまずそれ試せよ

■ このスレッドは過去ログ倉庫に格納されています