JP2005202963A - Javaプログラムの処理速度を向上させるシステム及びその方法 - Google Patents

Javaプログラムの処理速度を向上させるシステム及びその方法 Download PDF

Info

Publication number
JP2005202963A
JP2005202963A JP2005006907A JP2005006907A JP2005202963A JP 2005202963 A JP2005202963 A JP 2005202963A JP 2005006907 A JP2005006907 A JP 2005006907A JP 2005006907 A JP2005006907 A JP 2005006907A JP 2005202963 A JP2005202963 A JP 2005202963A
Authority
JP
Japan
Prior art keywords
class
information
class file
processing speed
logical unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005006907A
Other languages
English (en)
Inventor
Chong-Mok Park
種穆 朴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2005202963A publication Critical patent/JP2005202963A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47KSANITARY EQUIPMENT NOT OTHERWISE PROVIDED FOR; TOILET ACCESSORIES
    • A47K3/00Baths; Douches; Appurtenances therefor
    • A47K3/28Showers or bathing douches
    • A47K3/30Screens or collapsible cabinets for showers or baths
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4441Reducing the execution time required by the program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation
    • G06F9/45525Optimisation or modification within the same instruction set architecture, e.g. HP Dynamo
    • EFIXED CONSTRUCTIONS
    • E05LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
    • E05YINDEXING SCHEME RELATING TO HINGES OR OTHER SUSPENSION DEVICES FOR DOORS, WINDOWS OR WINGS AND DEVICES FOR MOVING WINGS INTO OPEN OR CLOSED POSITION, CHECKS FOR WINGS AND WING FITTINGS NOT OTHERWISE PROVIDED FOR, CONCERNED WITH THE FUNCTIONING OF THE WING
    • E05Y2900/00Application of doors, windows, wings or fittings thereof
    • E05Y2900/10Application of doors, windows, wings or fittings thereof for buildings or parts thereof
    • E05Y2900/114Application of doors, windows, wings or fittings thereof for buildings or parts thereof for showers

Abstract

【課題】Javaプログラムの処理速度を向上させるシステム及びその方法を提供する。
【解決手段】クラスローダが所定の保存領域に保存されたクラスファイルを所定サイズの物理的な単位で割ってメモリに伝送(またはローディング)する段階と、前記クラスローダがローディングした物理的な単位のクラスファイルをロードタイムコンパイラがリンキング及びコンパイルする段階と、前記ロードタイムコンパイラがリンキング及びコンパイルする段階で前記受信された物理的な単位のクラスファイルに論理的な単位の情報が含まれているか否かを判断する段階及び前記含まれた論理的な単位の情報をリンキングし、前記情報がJavaメソードである場合、前記メソードをコンパイルする段階を含むJavaプログラムの処理速度を向上させる方法。
【選択図】図5

Description

本発明はJava(登録商標)プログラムの処理速度を向上させるシステム及びその方法に係り、さらに詳細にはJava仮想マシンでクラスファイルのローディング過程及びクラスファイルのコンパイル過程を同時に行えるJavaプログラムの処理速度を向上させるシステム及びその方法に関する。
図1は、従来のJava仮想マシンが搭載された情報機器の代表的な構成例を示す図面であって、ここで情報機器は携帯用電話機器、PDA、デジタルTV、セットトップボックス、PC等と理解されうる。
前記情報機器はCPU、ネットワークインターフェース、ハードディスクやフラッシュメモリなどの永久保存装置、主メモリ、入出力装置、ディスプレー装置、及びその他の装置のための外部装置コネクタを含む。
Java仮想マシンはこのような機器の主メモリに常駐することになり、Javaアプリケーションを構成するJavaクラスをメモリにローディングして行う。ここで、永久保存装置はハードディスクやフラッシュメモリと理解され、入力装置はPCの場合にキーボードやマウスなどの入力装置、及びデジタルTVやセットトップボックスの場合にリモコンレシーバーと理解されうる。出力/ディスプレー装置はPCの場合にグラフィックアダプタになり、デジタルTVの場合にはディスプレー装置が内蔵された形になり、外装形態にも連結されうる。外部装置コネクタは通用されているUSB、IEEE 1394、RF、Infrared、Bluetoothなどの連結装置と理解されうる。このように仮想マシンが駆動されうる環境は全ての情報機器を包括しており、特定の装置に限定されるものではない。
また、Javaクラスはネットワークインターフェースを介して外部から伝送されても良く、永久保存装置から伝送されるか、あるいは外部装置コネクタで連結された外部装置から伝送されても良い。ネットワークインターフェースは特定のネットワーク連結を通じて外部に存在するサーバーに接続及びJavaクラスの伝送を担当する。ここで、ネットワーク連結の形態はLAN、Wide Area Network(WAN)などの有線パケット通信網や、無線LAN、CDMA/GSM/GPRS等の無線/移動通信網、デジタルTV空中波/Cable/Satelliteなどの有/無線放送網など特定形態に限定されず、多様な形になりうる。
図2は、従来のJava仮想マシンの構成を示す図面であって、Java仮想マシンはクラスローダ10、インタプリタ20、コンパイラ30及びランタイムシステム40を基本的に含む。
クラスローダ10はネットワークまたはファイルシステムからJavaクラスファイルを読込んでクラスファイルに含まれた内部情報によって適切にメモリ上に配置して内部状態を初期化する。
インタプリタ20はJavaクラスファイルの実行コードを実行するための構成要素であって、Javaバイトコード形態の命令語を認識して命令を行う役割をする。すなわち、クラスローダ10が読込んだJavaクラスファイルに含まれたメソードのバイトコードを認識して行うものである。
コンパイラ30はJavaクラスファイルの実行中にJavaバイトコードを情報機器に搭載されたCPUの機械語に変換するものであって、一般にJITコンパイラ(Just−In−Time compiler)が広く使われる。すなわち、クラスローダ10が読込んだJavaクラスファイルに含まれたメソードのバイトコードをCPUの機械語に変換するものである。
ランタイムシステム40は前記Java仮想マシンを構成する要素(クラスローダ、インタプリタ、コンパイラ)を結合及び運用するものである。
図3は、従来のJavaクラスファイルの構成を示す図面である。
Javaクラスは一般的にクラスファイルという特定ファイルフォーマットで伝送/保存され、前記クラスファイルフォーマットにはクラスに関連された多様な属性を含む。ここで、クラスファイルフォーマットは基本属性を表示するクラスヘッダ、全ての定数を管理するコンスタントプール、クラスファイルのインターフェースに対する情報を含むインターフェース部分とフィールドに対する情報を含むフィールド部分及びクラスファイルに定義された各メソード別に実行コードがバイトコードの形に保存されたメソード部分で構成される。
図4は、従来のJava仮想マシンでJavaクラスファイルを伝送して行う過程を示すフローチャートであって、Javaクラスファイルの伝送過程は大きくクラスローディング段階、初期化段階及び実行段階に区分されうる。
まず、クラスローディング段階ではクラスファイルをネットワークやディスクからメモリに伝送する段階とリンキング段階よりなり、前記リンキング段階は再びクラスに対する検証段階、クラス準備段階、そして分解段階よりなる。
検証段階はクラスファイルの構造と内容とが正しく作成されたか否かを判別する段階であって、クラスメソードに含まれたバイトコードが何れも有効であるか否かを検査する。準備段階はクラスに定義された定数や変数のデフォルト値を指定する段階であり、最後に分解段階はコンスタントプールに明示されたシンボルを実行中に必要なリソースの物理的な位置情報に置換する段階である。
次いで、クラスローディング段階が終われば、メモリにロードされたクラスファイルを初期化してから実行段階を実行するが、実行段階ではクラスに含まれた実行コードの形態によって実行モードが決定される。
ここで、メソードがバイトコード形式よりなっていれば、バイトコードをCPUの機械語に変換するか否かを判別し、もし機械語に変換しない場合にインタプリタが直接バイトコードを1つずつ読込みつつ行う。バイトコードを機械語に変換する場合にはコンパイラがバイトコードを読込んでCPUの機械語に変換した後で直接変換された機械語が実行される。
しかし、従来の技術ではクラスファイルの伝送とリンキングとが順次に行われ、クラスファイルが完全に伝送されるまでにリンキング段階を行わない。このような特徴によって、クラスファイルを伝送した後でリンキングし、初期化して行うまでに長時間の遅延が生じる。すなわち、クラスファイルの伝送がネットワークを介した伝送である場合にはネットワークの帯域幅やクラスファイルのサイズによって時間遅延が生じ、リンキング段階でもクラスファイルを検証する段階でCPUを多く消耗することになる。
また、実行時間にメソードをコンパイルする過程で時間がさらにかかるが、特に高度のコンパイル技術を使用すればするほどさらに長時間がかかる。結果的にアプリケーションの実行時間はこのような一連の過程によって全体的な性能が低下する問題点がある。
特許文献1(バイトコード実行プロセス、方法及びデータ処理システムとそれを具現したコンピュータプログラム製品)は、クラスローダを通じて実行のためのバイトコードをローディングし、バイトコードのコンパイル如何を判定してからJITコンパイラに伝送し、バイトコードがJITコンパイルされねばならないという判定でない場合、インタプリタに伝送するバイトコード実行プロセスを開示しているが、バイトコードをロードする過程である伝送段階とリンキング段階、そしてコンパイル段階を同時に併行する方法については全く言及していない。
韓国公開特許2000−0057010号公報
本発明は前記問題点を解決するために案出されたものであって、本発明の目的は、Java仮想マシンでクラスファイルのローディング過程及びクラスファイルのコンパイル過程を同時に行うことによって、アプリケーションの全体実行性能を向上させうるJavaプログラムの処理速度を向上させるシステム及び方法を提供することである。
前記目的を達成するために本発明のJavaプログラムの処理速度を向上させるシステムは、Javaプログラムのクラスファイルをローディングするクラスローダと、前記クラスローダがローディング中のクラスファイルをコンパイルするロードタイムコンパイラと、を含むことを特徴とする。
また、本発明のJavaプログラムの処理速度を向上させる方法は、クラスローダが所定の保存領域に保存されたクラスファイルを所定サイズの物理的な単位で割ってメモリに伝送(またはローディング)する段階と、前記クラスローダがローディングした物理的な単位のクラスファイルをロードタイムコンパイラがリンキング及びコンパイルする段階と、前記ロードタイムコンパイラがリンキング及びコンパイルする段階で前記受信された物理的な単位のクラスファイルに論理的な単位の情報が含まれているか否かを判断する段階及び前記含まれた論理的な単位の情報をリンキングし、前記情報がJavaメソードである場合に前記メソードをコンパイルする段階を含むことを特徴とする。
本発明によれば、Java仮想マシンでクラスファイルのローディング過程及びクラスファイルのコンパイル過程を同時に行い、クラスファイルローディング時間内にコンパイル過程を実行させることによって、アプリケーションの全体実行性能を向上させうる効果がある。
また、クラスファイルがローディングされた以後にコンパイル段階による時間遅延を最小化すると同時に、クラスファイルのメソード実行を直接CPUの機械語に変換された形に実行させることによって、クラスファイルの伝送及びローディング後のコンパイル時間とクラスの実行時間とを共に短縮でき、これは従来のコンパイルを行う方式よりクラスファイルの大きさを最小化できてクラスファイルの伝送時間も減らせる効果がある。
また、本発明はクラスファイルの標準フォーマットをそのまま活用できて仮想マシンの長所である移植性を最大限活用できる。
以下、本発明の望ましい実施例を添付した図面を参照して詳細に説明する。
図5は、本発明のJavaプログラムの処理速度を向上させるシステムを概略的に示す図面であって、クラスローダ110、ロードタイムコンパイラ120及びランタイムシステム130を含んで構成される。
クラスローダ110はJavaプログラムのクラスファイルをメモリにローディングするものであって、すなわち所定の保存領域から伝送される所定サイズの物理的な単位でクラスファイルをローディングする。また、クラスローダ110は物理的な単位のクラスファイルが現在まで伝送された伝送量を表示しておくことによって、前記ロードタイムコンパイラ120がクラスファイルのリンキング及びコンパイルを行うに当たって参照可能にする。ここで、所定の保存領域はネットワークで連結された遠隔システムまたはディスクとして理解でき、前記クラスファイルは所定サイズの単位(例えば、ネットワークである場合にパケット、ディスクである場合にはブロックなど)で分割されて伝送される。
ロードタイムコンパイラ120はクラスローダ110がローディングしたクラスファイルをリンキング及びコンパイルするものであって、すなわち、前記クラスローダ110にローディングしている物理的な単位のクラスファイルに論理的な単位の情報が含まれているか否かを判断し、前記論理的な単位の情報をリンキングし、前記情報がメソードである場合に前記メソードに保存されたバイトコードに対するコンパイルを行う。ここで、ロードタイムコンパイラ120は前記判断を前記クラスローダ110が表示した現在まで伝送されたクラスファイルの伝送量を参照してクラスファイルのリンキング及びコンパイルを行う。すなわち、ロードタイムコンパイラ120はクラスローダ110がネットワークやディスクなどの保存領域から伝送されたクラスファイルをメモリにロードした後、現在まで伝送されたクラスファイルの伝送量を表示すれば、前記表示されたクラスファイルの伝送量を確認した後、伝送された分量だけに含まれた論理的な単位の情報をリンキング及びコンパイルすることによって、クラスファイルの伝送完了前にあらかじめクラスファイルのコンパイルを行う。一方、前記論理的な単位の情報は、クラスファイルを構成するクラスヘッダ、コンスタントプール、インターフェース、フィールド及びメソード領域として理解されうる。
また、ロードタイムコンパイラ120はリンキング及びコンパイル実行段階でリンキング過程で必要な検証、準備及び分解過程を共に行う。
ランタイムシステム130はクラスファイルを行うために必要な資源を管理する。
一方、クラスローダ110及びロードタイムコンパイラ120は各々別途のスレッドで同時に動作を行う。
一方、従来の仮想マシンにあったインタプリタ20とコンパイラ30は本発明での具現方法によってオプション事項として含めても、あるいは除いても良い。すなわち、基本的に全てのクラスファイルをロード時間にコンパイルを行う方式によるとすれば、インタプリタ20及びコンパイラ30は不要であるが、具現方法によって特定のクラスファイルや前記クラスファイルの特定メソードはコンパイルを行わない方法を使用する場合には、インタプリタ20及びコンパイラ30が実行時間にバイトコードを直接行うか、あるいは再びコンパイルを行うべきである。
また、本発明の実施例はJava仮想マシン100を例として説明しているが、本発明はMicrosoftのCommon Language Runtime(CLR)やSmalltalkの仮想マシンのように同等な機能を提供する他の仮想マシンにも適用しうる。
図6は、本発明のJavaプログラムの処理速度を向上させる方法を概略的に示すフローチャートであって、まずクラスローダ110が所定の保存領域で所定サイズの物理的な単位でクラスファイルをメモリに伝送(またはローディング)し始める(S100)。ここで、クラスローダ110はクラスファイルの現在まで伝送された物理的な単位の伝送量を表示しておくことによって、前記ロードタイムコンパイラ120がクラスファイルのコンパイルを行うのに参照できるようにする。
次いで、ロードタイムコンパイラ120はクラスローダ110が表示した現在まで伝送されたクラスファイルの伝送量を確認した後、メモリにローディングされた物理的な単位のクラスファイルに論理的な単位の情報が含まれているか否かを判断する(S110)。ここで、論理的な単位の情報はクラスファイルを構成するクラスヘッダ、コンスタントプール、インターフェース、フィールド及びメソード領域として理解されうる。
次いで、前記判断の結果、現在まで伝送されたクラスファイルに次に処理しなければならない論理的な単位の情報が全て含まれた場合に該当論理的な単位の情報をリンキング及びコンパイルし(S120)、判断の結果、クラスファイルに次に処理しなければならない論理的な単位の情報が含まれていない場合、ロードタイムコンパイラ120はクラスローダ110が次の物理的な単位をメモリにローディングするまでスレッドを中止させることによって待機する(S130)。
次いで、クラスローダ110は次の物理的な単位がメモリにローディングされれば、クラスファイルの伝送量の増加如何を表示し、中止されたロードタイムコンパイラ120スレッドを再開させる(S140)。ここで、前記段階S110、段階S120、段階S130及び段階S140過程はロードタイムコンパイラ120がクラスファイルに含まれた論理的な単位の情報を全て処理するまで実行し続ける(S150)。
一方、クラスローダ110及びロードタイムコンパイラ120は各々別途のスレッドで同時に動作を行う。
以下、図7でクラスファイルに論理的な単位の情報が含まれているか否かを判断する過程及びクラスファイルをリンキング及びコンパイルする過程を詳細に説明する。
図7は、本発明に係るロードタイムコンパイラのリンキング及びコンパイル動作過程を示すフローチャートであって、前記図6でクラスファイルに論理的な単位の情報が含まれているか否かを判断する過程及びクラスファイルをリンキング及びコンパイルする過程を詳細に説明する。
まず、ロードタイムコンパイラ120はクラスローダ110がメモリにロード中のクラスファイルに次に処理せねばならない論理的な単位であるクラスヘッダ情報が含まれているか否かを判断する(S200)。
判断の結果、クラスファイルにクラスヘッダ領域の情報が全て含まれていれば、該当クラスヘッダのリンキング(すなわち、検証)過程を行い(S210)、判断の結果、クラスファイルにクラスヘッダ領域の情報が全て含まれていないと、クラスローダ110が次の物理的な単位をローディングするまで待機する(S211)。
次いで、クラスローダ110がローディングしたクラスファイルに次に処理しなければならないコンスタントプール領域の情報、インターフェース領域の情報、フィールド領域の情報及びメソード領域の情報が全て含まれているか否かを判断する過程と、それによるリンキング過程及び次のクラスファイルがローディングされる過程(S220ないしS291)は前記段階S200ないし段階S211過程と同一に実行される。但し、メソード領域情報を処理する過程ではメソードに保存されたバイトコードをコンパイルする過程をさらに行う。
以上、本発明について詳細に記述したが、本発明が属する技術分野で当業者ならば、特許請求の範囲に定義された本発明の精神及び範囲を外れずに本発明を多様に変形または変更して実施可能なのは自明であり、従って本発明の実施例に係る単純な変更は本発明の技術を外れられない。
本発明によるJavaプログラムの処理速度を向上させるシステム及びその方法は、Java仮想マシンが搭載された情報機器、例えば携帯用電話機器、PDA、デジタルTV、セットトップボックス、PC等に適用されうる。
従来のJava仮想マシンが搭載された情報機器の代表的な構成例を示す図面である。 従来のJava仮想マシンの構成を示す図面である。 従来のJavaクラスファイルの構成を示す図面である。 従来のJava仮想マシンでJavaクラスファイルを伝送して行う過程を示すフローチャートである。 本発明のJavaプログラムの処理速度を向上させるシステムを概略的に示す図面である。 本発明のJavaプログラムの処理速度を向上させる方法を概略的に示すフローチャートである。 本発明に係るロードタイムコンパイラのコンパイル動作過程を示すフローチャートである。
符号の説明
100 Java仮想マシン
110 クラスローダ
120 ロードタイムコンパイラ
130 ランタイムシステム

Claims (16)

  1. Javaプログラムのクラスファイルをローディングするクラスローダと、
    前記クラスローダがローディング中のクラスファイルをコンパイルするロードタイムコンパイラと、を含むことを特徴とするJavaプログラムの処理速度を向上させるシステム。
  2. 前記クラスファイルは所定サイズの物理的な単位で伝送されることを特徴とする請求項1に記載のJavaプログラムの処理速度を向上させるシステム。
  3. 前記ロードタイムコンパイラは、前記クラスファイルに次に処理する論理的な単位の情報が含まれているか否かを判断し、前記論理的な単位の情報の存在時にコンパイルを行うことを特徴とする請求項1に記載のJavaプログラムの処理速度を向上させるシステム。
  4. 前記論理的な単位の情報はクラスヘッダ、コンスタントプール、インターフェース、フィールド及びメソードのうち何れか1つであることを特徴とする請求項3に記載のJavaプログラムの処理速度を向上させるシステム。
  5. 前記ロードタイムコンパイラは、前記論理的な単位の情報をコンパイルする過程でクラスファイルが正しく構成されたか否かを検証する過程を行うことを特徴とする請求項1に記載のJavaプログラムの処理速度を向上させるシステム。
  6. 前記ロードタイムコンパイラは、前記論理的な単位の情報をコンパイルする過程でクラス変数の初期値を設定する準備過程を行うことを特徴とする請求項1に記載のJavaプログラムの処理速度を向上させるシステム。
  7. 前記ロードタイムコンパイラは、前記論理的な単位の情報をコンパイルする過程で他のクラスのメソードやフィールドに対する参照値がある場合、これらを分解する過程を行うことを特徴とする請求項1に記載のJavaプログラムの処理速度を向上させるシステム。
  8. 前記クラスローダ及びロードタイムコンパイラは、各々別途のスレッドを用いて同時に動作を行うことを特徴とする請求項1に記載のJavaプログラムの処理速度を向上させるシステム。
  9. 所定の保存領域に保存されたクラスファイルをクラスローダが所定サイズの物理的な単位でメモリに伝送する段階と、
    前記受信された物理的な単位のクラスファイルに論理的な単位の情報が含まれているか否かを判断する段階と、
    前記ロードタイムコンパイラが前記クラスファイルに含まれた論理的な単位の情報をコンパイルする段階と、を含むことを特徴とするJavaプログラムの処理速度を向上させる方法。
  10. 前記所定の保存領域はネットワークで連結された遠隔システム、ディスク、外部連結端子に連結された外部保存装置または情報機器のうち何れか1つであることを特徴とする請求項9に記載のJavaプログラムの処理速度を向上させる方法。
  11. 前記論理的な単位の情報はクラスヘッダ、コンスタントプール、インターフェース、フィールド及びメソードのうち何れか1つであることを特徴とする請求項9に記載のJavaプログラムの処理速度を向上させる方法。
  12. 前記クラスローダ及びロードタイムコンパイラは、各々別途のスレッドを用いて同時に動作を行うことを特徴とする請求項9に記載のJavaプログラムの処理速度を向上させる方法。
  13. 前記受信されたクラスファイルに論理的な単位の情報が含まれているかを判断する段階は、前記受信されたクラスファイルに論理的な単位の情報を含んでいない場合、次の物理的な単位が伝送されることを待機する段階を含むことを特徴とする請求項9に記載のJavaプログラムの処理速度を向上させる方法。
  14. 前記論理的な単位の情報をコンパイルする過程でクラスファイルが正しく構成されたか否かを検証する段階を含むことを特徴とする請求項9に記載のJavaプログラムの処理速度を向上させるシステム。
  15. 前記論理的な単位の情報をコンパイルする過程でクラス変数の初期値を設定する準備段階を含むことを特徴とする請求項9に記載のJavaプログラムの処理速度を向上させるシステム。
  16. 前記論理的な単位の情報をコンパイルする過程で他のクラスのメソードやフィールドに対する参照値がある場合にこれらを分解する段階を含むことを特徴とする請求項9に記載のJavaプログラムの処理速度を向上させるシステム。
JP2005006907A 2004-01-14 2005-01-13 Javaプログラムの処理速度を向上させるシステム及びその方法 Pending JP2005202963A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040002655A KR100654428B1 (ko) 2004-01-14 2004-01-14 자바 프로그램의 처리 속도를 향상시키는 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
JP2005202963A true JP2005202963A (ja) 2005-07-28

Family

ID=36096309

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005006907A Pending JP2005202963A (ja) 2004-01-14 2005-01-13 Javaプログラムの処理速度を向上させるシステム及びその方法

Country Status (5)

Country Link
US (1) US20050155028A1 (ja)
EP (1) EP1669861A3 (ja)
JP (1) JP2005202963A (ja)
KR (1) KR100654428B1 (ja)
CN (1) CN100349114C (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7844960B2 (en) * 2005-09-14 2010-11-30 International Business Machines Corporation Optimizing software program execution during class loading phase
CN100339831C (zh) * 2005-12-14 2007-09-26 浙江大学 应用于Java操作系统中虚拟机的编译体系实现方法
US20070143339A1 (en) * 2005-12-20 2007-06-21 Springett John C Architecture for a smart enterprise framework and methods thereof
KR100765602B1 (ko) * 2006-02-03 2007-10-09 현대자동차주식회사 무선통신 환경에서의 대용량 메시징 데이타 분할 전송시스템 및 방법
KR100818919B1 (ko) 2006-02-24 2008-04-03 삼성전자주식회사 메소드 호출 방법 및 이를 이용한 자바 가상 머신
US8250559B2 (en) * 2006-04-12 2012-08-21 Oracle America, Inc. Supporting per-program classpaths with class sharing in a multi-tasking virtual machine
KR100828364B1 (ko) * 2006-06-28 2008-05-08 삼성전자주식회사 가상 프로파일을 이용한 자바 jit 컴파일 방법 및시스템
KR101235414B1 (ko) * 2006-08-18 2013-02-20 엘지전자 주식회사 데이터 방송 수신기에서 스레드 관리 방법
CN100465894C (zh) * 2007-01-12 2009-03-04 中山大学 一种Java Processor启动时类装载方法
CN102103489A (zh) * 2011-01-28 2011-06-22 武汉天喻信息产业股份有限公司 一种提高静态域访问指令执行效率的方法
US10216500B2 (en) * 2012-02-10 2019-02-26 Oracle International Corporation Method and apparatus for synchronization annotation
US9298448B2 (en) * 2013-05-21 2016-03-29 Red Hat, Inc. System and method for run time dependency resolution
CN103729235A (zh) * 2013-12-24 2014-04-16 华为技术有限公司 Java虚拟机的编译方法和Java虚拟机
US9286085B2 (en) * 2014-06-27 2016-03-15 International Business Machines Corporation Correlating class loader objects across execution environments
CN105446709B (zh) * 2014-07-29 2019-06-21 阿里巴巴集团控股有限公司 一种Java应用处理方法及装置
CN106681749B (zh) * 2015-11-11 2021-01-05 腾讯科技(深圳)有限公司 基于安卓平台的局部代码补丁更新方法及装置
CN110119274A (zh) * 2018-02-05 2019-08-13 北京智明星通科技股份有限公司 一种数据编译的方法、装置以及电子终端、计算机可读存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061520A (en) * 1998-04-07 2000-05-09 Sun Microsystems, Inc. Method and system for performing static initialization
US6075942A (en) * 1998-05-04 2000-06-13 Sun Microsystems, Inc. Encoding machine-specific optimization in generic byte code by using local variables as pseudo-registers
US6230184B1 (en) * 1998-10-19 2001-05-08 Sun Microsystems, Inc. Method and apparatus for automatically optimizing execution of a computer program
US6324687B1 (en) 1998-12-03 2001-11-27 International Business Machines Corporation Method and apparatus to selectively control processing of a method in a java virtual machine
US6842894B1 (en) * 1999-04-05 2005-01-11 Gateway, Inc. Dynamic Compiling
US6711619B1 (en) * 1999-12-15 2004-03-23 Hewlett-Packard Development Company, L.P. Method, system, and apparatus for distributing and using computer-based applications over a network
US6745386B1 (en) * 2000-03-09 2004-06-01 Sun Microsystems, Inc. System and method for preloading classes in a data processing device that does not have a virtual memory manager
GB2365554B (en) * 2000-05-31 2004-09-01 Ibm Virtual machine support for multiple aplications
US6918106B1 (en) * 2000-07-31 2005-07-12 Sun Microsystems, Inc. Method and apparatus for collocating dynamically loaded program files
JP2002073345A (ja) * 2000-08-25 2002-03-12 Fujitsu Ltd 情報処理装置及び記録媒体
KR20020032889A (ko) * 2000-10-27 2002-05-04 오길록 자바 클래스 파일 분석을 이용한 클래스 호출관계 표시 방법
US6964039B2 (en) * 2000-12-13 2005-11-08 Esmertec Ag Method to create optimized machine code through combined verification and translation of JAVA™ bytecode
US6718539B1 (en) * 2000-12-22 2004-04-06 Lsi Logic Corporation Interrupt handling mechanism in translator from one instruction set to another
US20020095664A1 (en) * 2001-01-18 2002-07-18 Wangtun Chou Pre-interpretation and execution method for Java computer program language
KR100439186B1 (ko) * 2001-12-28 2004-07-05 한국전자통신연구원 자바 가상머신의 멀티 쓰레드 시스템에서의 동기화 장치및 방법
WO2004027600A1 (ja) * 2002-08-30 2004-04-01 Renesas Technology Corp. データ処理装置及びicカード
US7370321B2 (en) * 2002-11-14 2008-05-06 Microsoft Corporation Systems and methods to read, optimize, and verify byte codes for a multiplatform jit

Also Published As

Publication number Publication date
US20050155028A1 (en) 2005-07-14
CN100349114C (zh) 2007-11-14
KR100654428B1 (ko) 2006-12-06
KR20050074766A (ko) 2005-07-19
EP1669861A2 (en) 2006-06-14
EP1669861A3 (en) 2008-02-06
CN1641571A (zh) 2005-07-20

Similar Documents

Publication Publication Date Title
JP2005202963A (ja) Javaプログラムの処理速度を向上させるシステム及びその方法
US10839141B2 (en) System and method for provisioning a mobile software application to a mobile device
US7047530B2 (en) Method and system for cross platform, parallel processing
US8776051B2 (en) Method of providing partially isolated execution environment for multiple applications and digital information apparatus using the same
CN106325847B (zh) 基于iOS平台获取应用程序功能的方法和装置
CN111831538B (zh) 调试方法、装置以及存储介质
KR100725386B1 (ko) 가상 머신 어플리케이션을 실행하는 방법 및 그 방법을이용한 디지털 방송 수신기
US20050188368A1 (en) Method and apparatus for reducing the storage overhead of portable executable (PE) images
US8448151B2 (en) Method for binarizing initial script on operating system and operating method of binary script
CN109936716B (zh) 一种显示驱动的实现方法及系统
US11016769B1 (en) Method and apparatus for processing information
CN111506368B (zh) 对异步调用转同步调用的方法、装置、设备及存储介质
US20060168559A1 (en) Apparatus and method for converting the visual appearance of a Java application program in real time
CN101382903B (zh) 智能密钥设备实现自动安装的方法和系统
CN1188790C (zh) 调制解调器的控制方法及设备
CN113228172A (zh) 直接内存访问控制方法、系统、计算机设备及存储介质
JP2005108126A (ja) 中間コード実行システム、中間コード実行システム搭載機器
JP2007048252A (ja) 仮想コンピュータシステム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080205

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080701