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