研究課題
本研究ではマルチコアCPUを搭載したスマートフォンを対象としたごみ集めを開発している.その目的は(1)実時間ごみ集めによりユーザインタフェースの反応をよくする,(2)コンパクションを行うことでプログラムを長時間実行してもメモリ不足にならないようにする,(3)高速に実行することである.昨年度,Androidに搭載された言語VMであるDalvik VMに実時間ごみ集めを実装している.本年度は,その性能を向上させる技術を研究した.まず,ヒープを高速に走査する方法を開発し,それをLisp2コンパクションに適用することで既存の走査法よりも高速であることを示した.ヒープの走査はごみ集めの基本的な走査のひとつであり,本研究で開発しているごみ集めのみならず,多くのごみ集めに適用できると期待される.また,Androidでコンパクションを行う際に問題になっていたライブラリのバグを修正した.Androidは膨大な既存のC++で記述されたライブラリを備えているが,その中にDalvik VMとの連携のための規約(JNI)に違反しているコードが存在した.そのためにコンパクションを行ってオブジェクトを移動させると問題が起こっていた.本研究ではソースコードを解析してJNIの規約違反の候補を検出するツールを作成し,それを修正した.その結果,コンパクションが可能になった.これに加えて,メモリ割り当て機構の改良を試みた.Dalvik VMでは,メモリ割り当てには外部のmallocライブラリを用いている.そのため,メモリのどの領域が使用中かを示す情報がごみ集め機構とメモリ割り当て機構で二重管理されている.ごみ集め機構と連携したメモリ割り当て機構を構成することで,この無駄を省くことができた.
24年度が最終年度であるため、記入しない。
すべて 2013 2012
すべて 雑誌論文 (1件) (うち査読あり 1件) 学会発表 (3件)
IPSJ Transactions on Programming
巻: Vol.5, No.3 ページ: 23--28