研究課題/領域番号 |
18KK0315
|
研究機関 | 東京大学 |
研究代表者 |
鵜川 始陽 東京大学, 大学院情報理工学系研究科, 准教授 (50423017)
|
研究期間 (年度) |
2019 – 2023
|
キーワード | JavaScript / メモリ管理 / hidden class / インタプリタ / 遺伝的アルゴリズム / ストレージストラテジ / 動的言語 |
研究実績の概要 |
本年度は,事前プロファイリングによってJavaScriptプログラムで使われるオブジェクトの実行時型の集合と実行時型の遷移を求め,それに基づき実行時型を表すデータ構造である隠れクラスと実行時型の遷移を表す遷移グラフを事前に構築する手法を研究した.JavaScriptでは実行中に任意のプロパティをオブジェクトに追加することができ,それによってオブジェクトの実行時型は変化する.どのようなプロパティがいつ追加されるかは一般にはプログラムを実行してみなければ分からない.そのため,オブジェクトを作る時に,そのオブジェクトが最終的にどのような型になるかを決定できず,適切な大きさのメモリ領域を割り当てることができない.そこで,実行中にオブジェクトのメモリを割り当て直すか,最初に余分にメモリを割り当てる方法が用いられる.これらは,どちらも実行時間かメモリ消費量のオーバヘッドを伴う. 本研究では,事前プロファイリングによって,プログラム中のオブジェクトを生成する各文によって作られたオブジェクトがどのような動的型の変遷をたどる可能性があるかを調べ,オブジェクトの動的型の遷移を表すデータ構造をプログラム中の各オブジェクト生成文に関連付ける.これを用いて,実行時にはオブジェクト生成時に最適な大きさのメモリを割り当てることができ,オーバヘッドを減らすことができる. さらに,オブジェクトの型が変化しなくなることで,Javaのような静的型付け言語のような最適化が可能になる.本研究では,オブジェクトの型を利用してハードウェアでメモリを圧縮する技術への応用も研究した. この他,コレクションデータ構造を特定の要素型に特化させてアクセスを高速化する手法(ストレージストラテジ)を応用して,配列の要素のサイスを減らす研究や,インタプリタの命令ハンドラの並べ順を遺伝的アルゴリズムで最適化する研究を行い,国内外で発表した.
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
2021年度までは新型コロナウィルスの影響により渡航を見合せていたが,2022年度は渡航して共同研究を進めることができた. 当初の計画にあったプログラム毎に仮想機械を最適化することでメモリ使用量を削減する研究として,事前プロファイリングによる隠れクラスグラフの最適化の研究を行った.渡航前のリモート会議システムを使った意見交換や渡航先で直接の打ち合わせで順調に進めることができ,その成果は仮想機械に関する国際ワークショップに採択された. また,当初の予定になかった,インタプリタの命令実行部分を高速化する研究のアイデアも生まれ,その研究にも取り組んだ.その成果はソフトウェア関係で評価の高いシンポジウムに採択された. さらに,ストレージストラテジを応用して配列のメモリ消費を抑える研究や,ハードウェアを用いてメモリを圧縮する研究でも一定の成果が得られている.
|
今後の研究の推進方策 |
2022年度までで計画にあるほぼ全ての研究を終えた.2023年度は研究の総括として,開発したJavaScript処理系の整備と公開を行う.また,共同研究先の研究者と今後も交流関係を維持,深化させ次の共同研究につなげるための活動を行う.
|