研究課題/領域番号 |
18KK0315
|
研究機関 | 高知工科大学 |
研究代表者 |
鵜川 始陽 高知工科大学, 情報学群, 准教授 (50423017)
|
研究期間 (年度) |
2019 – 2020
|
キーワード | マネージドランタイム / JavaScript / ガーベージコレクション / 組込みシステム |
研究実績の概要 |
JavaScriptのオブジェクトをメモリ上で効率よく表現する方法およびメモリ管理を研究した.その結果,我々が開発しているIoT向けJavaScript仮想機械であるeJSのメモリ効率を45%改善しつつ,実行速度を33%向上させることができた.また,共同研究相手のStefan Marr博士が作ったベンチマークプログラムをeJSで利用できるようにした.今後はこのベンチマークプログラムを使って,これまでより広範囲の性能評価が可能になる. JavaScriptのオブジェクトには実行中にプロパティを追加できるが,現実のプログラムではオブジェクトが持つプロパティ集合(クラス)のバリエーションは多くない.そこで,個々のオブジェクトをクラスへのポインタと配列(値配列)の組で表現し,クラスがプロパティ名から配列のインデックスへの対応表を持つ実装が一般的である.クラスは複数のオブジェクトで共有でき,メモリ効率がよい. しかし,プロパティの追加のたびに,(1)値配列を拡張するために配列全体のコピーする必要があり実行が遅くなる,(2)プロパティが追加されたクラスを効率よく探すために,全てのクラスを木構造で保持しておく必要があり,eJSが対象とするようなメモリの少ない環境では,メモリを圧迫するという問題があった. 本研究では,特に組込みシステムのプログラムでは,同じプログラム中の位置(割り当てサイト)で作られたオブジェクトのほとんどは最終的に同じプロパティの集合を持つという仮定で,割り当てサイト毎に最終的なプロパティ集合を求め,静的言語のオブジェクトのような表現のオブジェクトを作る仕組みを開発した.これにより,(1)の問題が解決する.さらに,最終的なクラス以外は不要になるので中間的なクラスは解放することができ,(2)の問題も解決する.評価に用いたプログラムでは,メモリ使用量を45%削減できた.
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
3: やや遅れている
理由
2019年の渡航は計画通り行い,研究を進めることができた.特に,共同研究相手との議論により,計画よりも単純で効果のありそうな実装方法に至り,その予備的な評価を行うことができた.しかし,2020年2月中旬より新型コロナウィルスの感染拡大が始まり,渡航が不可能になった.共同研究相手は学部長のため,感染拡大の対応で多忙になり共同研究を一時中止せざるを得なくなった.
|
今後の研究の推進方策 |
現在は共同研究相手に時間ができたため,オンラインで会議しながら研究を進めている.しかし,渡航自粛要請が続いているため,渡航には至っていない.オンライン会議を利用しての研究推進を続けながら,必要に応じて研究期間延長の申請をして渡航の機会を探す予定である.
|