[過去ログ] GCは失敗。メモリは自分で管理せよ! その2©2ch.net (720レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
33: デフォルトの名無しさん [sage] 2015/11/22(日) 23:18:34.23 ID:7zQV9dKP(1) AAS
無茶いうな
47
(1): デフォルトの名無しさん [sage] 2015/11/24(火) 00:26:10.23 ID:f4S6RtN7(1/4) AAS
うーん質問がアバウトすぎたな。もう少し具体的に書くわ

例えば2chのある板を管理するプログラムを書くとして
BoardクラスとThreadクラスを想像してみてくれ
BoardはThreadオブジェクトを管理するが、Threadは
産まれたり死んだりと揮発的で寿命が定まらないと。
で各Threadは何らかの共有リソースを持つと。
例えば一度読み込んだ画像を各スレッドで共有したいとかが
考えられるけど、画像オブジェクトをshared_ptrで共有するのは
適切ではない
なぜならある瞬間に産まれたThread群がひとつの画像を共有する
からといってshared_ptrで持たせたとしても、後の更新時に
更にその画像を共有したいThreadが現れたときに、画像が
すでにあることを何らかの形で知れないといけないから。
結局Boardなんかが画像オブジェクトのコンテナを持つ必要が
あってそのコンテナへの追加と削除のために別の共有の
仕組みが必要になるんだよ。例えばThreadがBoardに画像を
リクエストして参照カウンタを持ったアクセサを返すようなもの
だから所有権はBoardひとりが持てばよくてshared_ptrを
使う必要がなくなるという理屈
こういったケースを踏まえてもshared_ptr使うケースって
ほとんどなくね
205: デフォルトの名無しさん [sage] 2015/12/06(日) 16:03:58.23 ID:5cQQ9Lrm(1/2) AAS
バグ(リソースへのポインタやハンドルを壊しちゃったとか)以外で
リソース解放に失敗するケースなんて1つも思いつかない
233: デフォルトの名無しさん [sage] 2015/12/07(月) 19:54:31.23 ID:GogXEvJk(1) AAS
ある意味メモリなんて一番扱いやすいリソースだからな。
メモリの管理すら適当なプログラマが、他のリソースを適切に扱える訳がないのに、GC前提の言語ではそちらのケアが言語側でやりづらくなってしまっている。
277: 名無しさん@そうだ選挙に行こう [sage] 2015/12/14(月) 11:15:19.23 ID:eBJzgHzn(2/4) AAS
>>275
275(2): 名無しさん@そうだ選挙に行こう [sage] 2015/12/14(月) 09:41:37.74 ID:sXTPVO5Q(3/3) AAS
このようにおまえのようなコンテキストすらまともに読めないPGは五万といる。
スレッドがデッドロックしてメモリを開放できないなんてよくあることだ。
俺は272に向けてたんだが
そりゃコンテキスト読めてないように見えるよなw
361: デフォルトの名無しさん [] 2016/01/26(火) 06:48:44.23 ID:v48l+1vS(1) AAS
やっとこの気色の悪い仕組みにトドメが刺されたか
javaとかGCが基本だけどflash();とかできるの?
388: デフォルトの名無しさん [] 2016/02/14(日) 20:10:25.23 ID:EqhxGdNa(1) AAS
>>387
387(1): デフォルトの名無しさん [sage] 2016/02/14(日) 19:42:04.72 ID:I7Qc+kxz(1) AAS
循環参照なんて放置すればいいの
どうせプロセスが終了すればOSが開放してくれるの
Windowsのように定期的に再起動しなければいけないソフトウェアができあがっちゃいそう
471: デフォルトの名無しさん [sage] 2016/04/18(月) 16:30:17.23 ID:BDPQ12Es(1) AAS
自前のメモリ管理が超下手くそなだけやろ
修業して出直してこいや
510
(1): デフォルトの名無しさん [sage] 2016/04/22(金) 20:32:21.23 ID:1FeuO5Gj(1) AAS
結局のところ、物理アドレスのフラグメンテーションはMMUが勝手になんとかしてくれるからあまり問題にならない

しかし論理アドレスの方は何にもしてくれないのでフラグメンテーション起こして
連続したアドレスが確保出来なくなると、それで終わり、どうしようもない
32bitプロセスだと4GBしか空間がないから、まれに問題になる
64bitプロセスだと無尽蔵に空間があるから問題になることは現状ありえない
643: デフォルトの名無しさん [sage] 2017/06/03(土) 10:06:08.23 ID:sCohk93m(1) AAS
GCがconflictするんですね判ります
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.034s