1 research outputs found

    組込み機器向けJavaScript処理系に向けた空間効率の良いごみ集めの実現

    Get PDF
    多くのオブジェクト指向言語では、処理系がメモリ管理を行うため、処理系にはごみ集めが実装されている。メモリに制約のある組込みシステムにこのような処理系を実装する場合、ごみ集めにおいてコンパクションを行うことで、限られたメモリ空間を効率よく利用する必要があり、コンパクションアルゴリズム自身も空間効率の良いものである必要がある。空間効率の良いコンパクションアルゴリズムのひとつとして、Jonkersのスレッド化コンパクションアルゴリズムが知られている。Jonkersのアルゴリズムではオブジェクトを移動させるため、それらのオブジェクトを指すポインタを更新する。特に、オブジェクト内部のポインタを更新するためには、オブジェクト内部のポインタが存在する位置を記録した、レイアウト情報が必要になる。レイアウト情報はメタオブジェクトに記録する技法がよく用いられるが、メタオブジェクト間にポインタがある場合、オブジェクトとメタオブジェクトを同じヒープ内に保持してしまうと、Jonkersのアルゴリズムを適用することができない。なぜなら、コンパクション中はメタオブジェクト間のポインタが辿れなくなるからである。本研究では、Jonkersのアルゴリズムを、オブジェクトとメタオブジェクトを同じヒープ内に保持しながら適用できるよう、改良したアルゴリズムを提案する。提案手法は、Jonkersのスレッド化コンパクションと同等の空間効率で実装することが可能である。提案手法を、組込みシステム向けJavaScript処理系に実装し、他の複数のごみ集めアルゴリズムと性能を比較した。その結果、提案手法は空間効率が最も高く、ヒープサイズが小さい場合には実行時間も最も短くなることを確認した。電気通信大学202
    corecore