[過去ログ] GCは失敗。メモリは自分で管理せよ! その2©2ch.net (720レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
46: デフォルトの名無しさん [sage] 2015/11/23(月) 22:58:10.32 ID:6m6E/SfN(2/2) AAS
>>4242(1): デフォルトの名無しさん [sage] 2015/11/23(月) 19:56:47.15 ID:+Ddm9172(1/2) AAS
リソースを共有する場合なんかは使うと楽だよ
まーshared_ptrが有れば、いつ実行されるか分からないような、手の込んだGCは要らないよな
巡回参照が有る場合はどちらかをweak_ptrにする、これだけを守ってれば問題は起きない
大体の場合は所有権というか上下関係がはっきりしているからな
巡回参照のある場合も自動で開放したいという、たったこれだけのために
いつ実行されるか分からない上に重いマークスイープ式GCを導入するのは
業界全体の早とちりだったようだね
それはManagerやHolder的なものを書かなくて良いってことを言ってるの?
それって大体一時しのぎで大抵後々リソース管理以外にもそういった管理クラスが必要になるケースがほとんどじゃない?
>>45ねーよ
122(1): デフォルトの名無しさん [sage] 2015/11/30(月) 21:25:49.32 ID:zT+q2mn+(2/3) AAS
意味が不明すぐるw
143: デフォルトの名無しさん [] 2015/12/03(木) 20:32:35.32 ID:R04IP6VM(1) AAS
確保したやつが解放するんだぞ。大丈夫か?
224: デフォルトの名無しさん [sage] 2015/12/07(月) 05:22:13.32 ID:QznWTKRS(1/2) AAS
逆だろ?
C#との勘違いでないなら、その最適化されるJVM実装とやらを示さないと
254(1): デフォルトの名無しさん [] 2015/12/08(火) 19:35:14.32 ID:Hrv9Cion(1) AAS
>>253253(1): デフォルトの名無しさん [sage] 2015/12/08(火) 19:22:21.31 ID:RKxPG6yJ(1/3) AAS
Rustはどう?
明文化されたmoveセマンティクスと、オブジェクトの寿命と参照のチェッカを型システムに組み込んでるおかげで、
リソース管理の実行時コストをゼロにしつつ、メモリリークが発生しないプログラムが書ける。
shared_ptrに相当するRcもあるから、所有者を複数にしたい場合のコストもそれなりに抑えられる。
すげえ難しいらしいじゃん
258(1): デフォルトの名無しさん [sage] 2015/12/08(火) 22:59:22.32 ID:RKxPG6yJ(3/3) AAS
>>255255(1): デフォルトの名無しさん [sage] 2015/12/08(火) 19:52:40.51 ID:NMHe7TFl(3/4) AAS
rustの清貧さは好みだけどまだ触った事ないな
同期処理を省略するためかshared_ptr相当がタスク間跨げないらしいけど
そこら辺の使い勝手ってどうなんだろう
shared_ptrと恒等なものは無いけど、ポインタ的に使える型がBox, Rc, Cell(あるいはRefCell)とあって、
Boxはヒープ領域であること、Rcは複数の所有者がいる(つまり所有者全員が死ぬまでは生きている)こと、Cellは複数の書き込みが作れること、
とか機能とコストが別れているから、これらを組み合わせて使う。
で、Thread Safetyを実現させる機構は上記には無いので、Atomicityを導入させるRcの類似形であるArcと、
書き込みもしたいならMutexっていう型も合わせて使う。
すると、例えば整数のベクトルをスレッド間で共有したい、とかになるとArc<Mutex<Vec<i32>>>という目が滑るような型表記をすることになる。
あんま詳しくないので、ケース毎にもっと簡単なやり方があるとは思うんだけどね。
392: デフォルトの名無しさん [] 2016/03/23(水) 02:31:06.32 ID:MFzvJNSi(1) AAS
常識的に考えてカーネルの実装にはGCなんて使えないし
業務アプリケーションではパフォーマンスより開発速度がはるかに重要になる
結局適材適所だ
GCを強制されるのは苦痛だが使えないのも苦痛だ
好きな時に使える言語がいいよね!
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.035s