いつまでも引っ張ってもしょうがないので、公開。
材料
作り方
multi thread環境では、minor GCがスレッド独立で行うことができるので、性能が期待できる。 single thread環境では、minor GCでは全オブジェクトをスキャンしないので、live objectが多くても性能が期待できる。
問題は、minor GCで回収できるのはヒープから参照されたことがないオブジェクトだけなので、 あまりに保守的過ぎて性能向上が十分でないかもしれないということ。いくら非再帰で軽いからと言っても、 あまり頻繁に行われては意味がない。実際に実装してみないとなあ。
なお、yarvメーリングリストで、富士通研の中村さんらの「動的に割付け戦略を最適化するJavaメモリ管理機構」(情報処理学会 トランザクション 「プログラミング」 アブストラクト Vol.44 No.SIG13 - 002)が似てるということを教えてもらいました。
別に真似したわけではありませんが、完全に独創的というものを作り出すのは難しいものです。 ってtraitの時にも似たようなことを書いたような。ヒープを別に持たない点などはちょっと独自かも。
なお、このアイディアはそのうち論文にする予定です。だが、まず実装しないとな。 いつになるやら。