alwei
@aizen76
だいたいメモリセクションを一々指定しないといけないのも面倒過ぎる 理想は何も意識せずにメモリリークやフラグメントが起きない様にすること
2010-08-04 13:27:30
でちまるさん(実際かわいい)
@decimalbloat
コンパクションをC++でやるには色々障害がある(GCがオブジェクトをコピーする方法を知っていないといけない、オブジェクトがコピーされたとき、コピー前のアドレス全てをコピー後のアドレスへと書き換えないといけない)けど、GCのためのメモリ消費を抑えつつこれらのことができるのだろうか…
2010-08-04 13:36:31
Akso de la Malbono
@Cryolite
@decimalbloat allocator の pointer 型は別に真のポインタ型でなくとも良いので,それを使って以下死ぬ気でいろいろ頑張ってください!
2010-08-04 13:40:00
でちまるさん(実際かわいい)
@decimalbloat
@kikairoya そのgc_ptrにコンパクションを実装するにあたって、生のポインタと参照が利用できなくなる、という。
2010-08-04 13:51:34
若年寄(もう若くない)
@kikairoya
@decimalbloat gc_ptr<T> gp;があるときに、gpの実体への生ポや参照は(一時的にgp.lock()で取るようなもの以外)必要ないような。
2010-08-04 13:53:36
でちまるさん(実際かわいい)
@decimalbloat
あるクラスが保持しているポインタとそれを保持しているアドレスは、そのクラスから教えてもらえれば、それを元に再配置後そのアドレスに新しいアドレスを書き込めばいいのだけど、参照はそうはいかないのである。
2010-08-04 13:54:28
若年寄(もう若くない)
@kikairoya
@decimalbloat gp自体はただのハンドル、必要に応じて一時的にlockすればいいんじゃないかなーとか。永続的に生ポを保存しておかないといけない状況って多くないはず
2010-08-04 13:57:48
若年寄(もう若くない)
@kikairoya
2段間接参照にしてExact GC可能にするのと、ポインタを直接走査してConservativeで我慢するのとどっちが有利なのかなあ
2010-08-04 13:59:48