書誌事項
- タイトル別名
-
- ブブンテキ サイロード ニ ヨル Java プログラム ノ サイキドウ ノ コウソクカ
- A Technique for Quick Restarting of Java Applications by Partial Class Reloading
この論文をさがす
説明
一部のクラスの定義を変えてプログラムを再起動するには,新たに作成したクラスローダを用いてアプリケーションを再ロードする必要がある.この手法は,たとえば HOT デプロイで利用されている.しかし,アプリケーションの全クラスの再ロードによる時間的コストが大きく,サーバのパフォーマンスを低下させてしまう.そこで本稿では,アプリケーションを部分的に再ロードすることで再起動を高速化する手法を提案する.再起動時にどのクラスが変更されたかが分かれば,変更対象クラスとそれに依存しているクラスのみを子ローダで再ロードすることで,その他のクラスは親ローダでロード済みのものを再利用できる.また,アプリケーションの各クラスに複数の版があり,それらを組み合わせて何度も再起動をする状況下では,各クラスの各版ごとにクラスローダを作成し,それらがロード済みの版のクラスを再利用することで再ロードのコストを軽減できる.しかし,後者の手法では多くのクラスを変更する際,削減できる再ロードのコストに対してクラスローダインスタンスの作成によるコストが大きくなりすぎる場合がある.そこで上記の 2 つの手法を per-session AOP を用いたフレームワークに実装し,実験を行った.その結果から,どちらの手法を使うべきかの指針を示した.
To modify the definitions of some classes of an application and restart it, the application should be reloaded by a new class loader. This approach is, for example, used for HOT deployment. However, it degrades the performance of a server application if all the classes of an application are reloaded. This paper proposes a technique to speed up restarting an application by partial class reloading. When an application is restarted, since we know which classes are modified at this time, we can reuse classes that have been already loaded and are not changed at this restart. Furthermore, when each class of an application has some versions and the application is restarted repeatedly with combination of different versions of classes, we can reduce reloading costs by creating a class loader responsible for loading each version of a class. This allows us to reuse not only original classes but also various versions of each class. However, the latter approach may degrade the performance because a large number of class loader instances are created when we modify a number of classes. We applied above two approaches to our per-session AOP framework respectively and provided guidelines which approach you should use.
収録刊行物
-
- 情報処理学会論文誌プログラミング(PRO)
-
情報処理学会論文誌プログラミング(PRO) 4 (3), 16-25, 2011-06-29
東京 : 情報処理学会
- Tweet
キーワード
詳細情報 詳細情報について
-
- CRID
- 1050845762830730112
-
- NII論文ID
- 110008616688
-
- NII書誌ID
- AA11464814
-
- ISSN
- 18827802
- 18827772
- 03875806
-
- NDL書誌ID
- 024298566
-
- 本文言語コード
- ja
-
- 資料種別
- article
-
- データソース種別
-
- IRDB
- NDL
- CiNii Articles
- KAKEN