GC on C++

@nari3 が作ってくださるとかいう話は私も聞いたきがする。
7
若年寄(もう若くない) @kikairoya

デバッグは2段間接+Exactのが楽な気がする

2010-08-04 14:00:12
でちまるさん(実際かわいい) @decimalbloat

@kikairoya あー、間接参照にしてしまうってことですか?まーshared_ptrを考えればアリかもしれないですが、間接参照な上に(実装にもよるけど)スレッドストップが発生するって…

2010-08-04 14:01:08
alwei @aizen76

やっぱり関節参照的なものがないときついかな

2010-08-04 14:03:15
若年寄(もう若くない) @kikairoya

@decimalbloat Compactionその他のメリットと、2段間接参照のデメリットとどっちが大きいのかなーってところですねえ。ただ*_ptrを見るに間接参照はそこまで遅くないかなーというイメージ。

2010-08-04 14:05:03
若年寄(もう若くない) @kikairoya

ただshared_ptrのカウンタ操作が遅い、と言われるような領域で2段間接参照が許容できるかどうかはよくわからない

2010-08-04 14:05:34
alwei @aizen76

うむ、勉強することいっぱいだ

2010-08-04 14:06:03
若年寄(もう若くない) @kikairoya

あと使用中のアドレスマップを別管理するとかも考えたけど、ちょっと実用的ではない気がする

2010-08-04 14:10:12
alwei @aizen76

Havokなんかのミドルウェアなんかはそこまでの事をC++で実装しているっぽいから出来ない事はないはず…

2010-08-04 14:14:09
alwei @aizen76

Havokのメモリ管理は凄い 多分うちのメモリアロケータの10倍以上軽く速い…

2010-08-04 14:15:53
若年寄(もう若くない) @kikairoya

結局何のためにGCを載せたいのか、というのが一番重要で。

2010-08-04 14:16:13
でちまるさん(実際かわいい) @decimalbloat

メンバに参照を持ってるオブジェクトは結局どうしようもないのではなかろうか

2010-08-04 14:17:38
若年寄(もう若くない) @kikairoya

@decimalbloat Tのムーブコンストラクタをどうにかして呼ばせれば…

2010-08-04 14:18:58
若年寄(もう若くない) @kikairoya

Move ConstructibleでないオブジェクトはそもそもCompactionの対象にできないよね

2010-08-04 14:23:53
でちまるさん(実際かわいい) @decimalbloat

Move Constructibleだったとしても、コンパクションするならxへの参照をyへの参照に書き換えさせろや!って感じなのでまぁコンパクションを実装するにあたっては参照使えないですね

2010-08-04 14:31:12
若年寄(もう若くない) @kikairoya

ん、Compactionの対象になるオブジェクトへの参照を持てないってのは最初から結論出てるんじゃ

2010-08-04 14:32:44
若年寄(もう若くない) @kikairoya

@decimalbloat 参照てめえはダメだってかなり前のほうで。 # もしかして対象違う?

2010-08-04 14:35:49
でちまるさん(実際かわいい) @decimalbloat

というか、メンバに参照が使えないことよりも、関数でTへの参照を引数にできないことのほうが…

2010-08-04 14:36:12
でちまるさん(実際かわいい) @decimalbloat

@kikairoya あー、それが結論っていうなら出てますね。

2010-08-04 14:36:33
若年寄(もう若くない) @kikairoya

Compactionしたくて参照も使いたいなら2段間接にするしか無さそう。そこらへんは完全にトレードオフだにゃー

2010-08-04 14:38:52