バイトコード変換を用いたJava標準API拡張ツール

書誌事項

タイトル別名
  • A Customizing Tool for Java Standard API Using Bytecode Translation

この論文をさがす

抄録

Java上で実行効率を重視したプログラムを作成している際,しばしばJava言語の標準APIを拡張したいという要求が生じることがある.たとえば,マルチスレッドプログラミングを行う際に,Threadごとにデータを保持させたい場合を考える.この場合,Threadオブジェクトと付加したいデータをハッシュなどで連想して用いるのが一般的な方法である.しかし,この方法では,データへのアクセス速度が遅くなってしまうという問題がある.これらの問題を解決するため,本研究では,標準APIを容易にカスタマイズして利用可能にするツールを提供する.ユーザは標準APIへの機能拡張を,Javaの継承に似た形で記述することで,拡張されたAPIを利用したプログラミングを行うことができる.前述の例では,Threadクラスに対して直接データフィールドを追加することで,拡張されたThreadクラス中のデータへ,高速なアクセスが可能になる.本ツールは,標準APIを構成するクラスライブラリにバイトコード変換を行うことで,拡張API用クラスライブラリを作成する.ユーザ記述に対応してバイトコード変換を行う変換器を,本ツールが自動生成することで,既存のJava処理系中の対象クラスを拡張する.最後に,本ツールを利用したプログラム実行効率の改善について,スレッドローカルに関するベンチマークプログラムを通して評価を行った.

Java offers the standard API speci fication.However,there is a situation where programmers want to customize API to write effcient programs.For example,to provide new thread local variables,the programmer may have to use hash functions to map a thread to the corresponding variables with heavy access overheads.To solve these problems,this presentation proposes anAPI customizing tool that allows the user to customize API easily.The user can write differential programs in Java-like manner to mix into the original API class files.In the previous case,the programmer only has to write a mix-in program to add new thread local data fields to the Thread class,and gains direct access to the local variables.To provide customized API class library,our tool automatically generates a bytecode translator from mix-in programs,and the translator translates original class files of the target classes into customized ones.We implement the above thread local library using our API customizing tool, and evaluate the improvement of program execution speed through benchmark programs.

収録刊行物

キーワード

詳細情報 詳細情報について

  • CRID
    1050564287845065856
  • NII論文ID
    110002726329
  • NII書誌ID
    AA11464814
  • ISSN
    18827802
  • Web Site
    http://id.nii.ac.jp/1001/00016811/
  • 本文言語コード
    ja
  • 資料種別
    article
  • データソース種別
    • IRDB
    • CiNii Articles

問題の指摘

ページトップへ