JP2004259252A - Java(登録商標)プログラムでのバイトコードのコンパイル時間短縮システム及び方法 - Google Patents
Java(登録商標)プログラムでのバイトコードのコンパイル時間短縮システム及び方法 Download PDFInfo
- Publication number
- JP2004259252A JP2004259252A JP2003359830A JP2003359830A JP2004259252A JP 2004259252 A JP2004259252 A JP 2004259252A JP 2003359830 A JP2003359830 A JP 2003359830A JP 2003359830 A JP2003359830 A JP 2003359830A JP 2004259252 A JP2004259252 A JP 2004259252A
- Authority
- JP
- Japan
- Prior art keywords
- bytecode
- native code
- memory unit
- unit
- java
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000004904 shortening Methods 0.000 title claims abstract description 10
- 230000004044 response Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
【課題】ネイティブコードのコンパイル時間を短縮できるJava(登録商標)プログラムでのバイトコードのコンパイル時間短縮システム及び方法を提供すること。
【解決手段】Java(登録商標)プログラムのバイトコードをローディングするクラスローダー部100と、前記ローディングされたバイトコード及びバイトコードをコンパイルして生成されたネイティブコードをアクセス可能な状態に保つ第1のメモリ部200と、前記ネイティブコードを格納する第2のメモリ部400と、第2のメモリ部400に格納されているネイティブコードを検索して第1のメモリ部200にローディングするネイティブコード管理部300と、前記ネイティブコードを実行させる実行部500とを備える。
【選択図】 図1
【解決手段】Java(登録商標)プログラムのバイトコードをローディングするクラスローダー部100と、前記ローディングされたバイトコード及びバイトコードをコンパイルして生成されたネイティブコードをアクセス可能な状態に保つ第1のメモリ部200と、前記ネイティブコードを格納する第2のメモリ部400と、第2のメモリ部400に格納されているネイティブコードを検索して第1のメモリ部200にローディングするネイティブコード管理部300と、前記ネイティブコードを実行させる実行部500とを備える。
【選択図】 図1
Description
本発明は、Java(登録商標)プログラムでのバイトコードのコンパイル時間短縮システム及び方法に関し、より詳しくは、Java(登録商標)プログラムの実行時に頻繁に使用されるバイトコードをコンパイルして生成されたネイティブコードを格納しておき、 後でJava(登録商標)プログラムを実行するときに、該当のバイトコードに対するネイティブコードを読み込んで実行することにより、ネイティブコードのコンパイル時間を短縮できるJava (登録商標)プログラムでのバイトコードのコンパイル時間短縮システム及び方法に関する。
一般に、Java(登録商標)プログラムのソースコードをコンパイルして生成されたバイトコード(byte code)は、Java(登録商標)仮想マシン(Java(登録商標) Virtual Machine : JVM)によって実行され、前記Java(登録商標)仮想マシンの 実行速度の向上のために、この頃、バイトコードをCPUで直接実行可能な形式のネイティブコード(native code)に変換して実行する方法が広く使用されている。
この方法のうち、Dynamic Adaptive Compilation(以下、DACと称する)は、バイトコードの解析(interpretation)時に、前記バイトコードが頻繁に使用されるバイトコードである場合、それをネイティブコードにコンパイルして実行する。つまり、前記DAC方法は、全体のプログラムをネイティブコードにコンパイルせず、 頻繁に使用されるバイトコードのみをネイティブコードにコンパイルすることである。
しかし、バイトコードの実行時に生成されるネイティブコードは、メモリ不足の際に、ガベージコレクター(garbage collector)により回収され、かつ、Java(登録商標)プログラムの実行が終了すると、全て無くなり、次回の実行で再び使用することができないという問題点があった。
ところで、一度ネイティブコードに生成されたバイトコードのほとんどは、次回にも再びネイティブコードに生成される特性があることから、生成されたネイティブコードを無くしてしまうと、次回の実行でさらに同様なネイティブコードを生成しなければならないという問題がある。
従って、従来の方法によると、無線端末機のような低性能のCPUや小容量のバッテリーを有するシステムでは、応答時間(Response time)が増加し、バッテリーの消耗が大きくなるという問題点があった。
本発明は、上記問題点に鑑みなされたものであり、Java(登録商標)プログラムの実行時に頻繁に使用されるバイトコードをコンパイルして生成されたネイティブコードを格納しておき、後でJava(登録商標)プログラムを実行するときに、該当のバイトコードに対するネイティブコードを読み込んで実行することにより、Java(登録商標)プログラムでのバイトコードのコンパイル時間を短縮できるシステム及び方法を提供することを目的とする。
なお、本発明は、低性能のCPUや小容量のメモリを有する機器におけるコンパイル時間を短縮して、Java(登録商標)プログラムの実行時間を短縮させ、使用者に対する応答時間を減少し、バッテリーの消耗量を減らすことのできるJava(登録商標)プログラムでのバイトコードのコンパイル時間短縮システム及び方法を提供することを他の目的とする。
上記の目的を達成するため、本発明に係るJava(登録商標)プログラムでのバイトコードのコンパイル時間短縮システムにおいては、Java (登録商標)プログラムソースコードをコンパイルして生成されたバイトコードをローディングするクラスローダー部と、前記クラスローダー部でローディングされたバイトコード及びバイトコードをコンパイルして生成されたネイティブコードをアクセス可能な状態に保つ第1のメモリ部と、前記第1のメモリ部にアクセス可能な状態にローディングされたネイティブコードを格納する第2のメモリ部と、前記クラスローダー部の要請により、第2のメモリ部に格納されているネイティブコードを検索して第1のメモリ部にローディングするネイティブコード管理部と、前記第1のメモリ部にアクセス可能な状態にローディングされたネイティブコードを実行する実行部とを備えていることを特徴とする。
なお、本発明に係るJava(登録商標)プログラムでのバイトコードのコンパイル時間短縮システム方法においては、クラスローダー部がコンパイルされたバイトコードをローディングするステップと、前記ローディングされたバイトコードに該当するネイティブコードの検索をネイティブコード管理部に要請するステップと、前記要請されたネイティブコードを第2のメモリ部から検索するステップと、前記検索された該当ネイティブコードを第1のメモリ部に伝送するステップと、前記伝送されたネイティブコードをネイティブコード実行部で実行するステップとを含むことを特徴とする。
本発明によると、Java(登録商標)プログラムの実行時に頻繁に使用されるバイトコードをコンパイルして生成されたネイティブコードを格納しておき、後でJava(登録商標)プログラムを実行するときに、該当のバイトコードに対するネイティブコードを読み込んで実行することにより、バイトコードをコンパイルしてネイティブコードを生成する時間を省くことができる効果がある。
また、携帯電話のような低性能のCPUや小容量のメモリを有する機器におけるコンパイル時間を減らすことにより、Java(登録商標)プログラムの実行時間を短縮して、使用者に対する応答時間を減少させ、バッテリーの消耗量を減らすことができるという効果がある。
以下、本発明の好ましい実施の形態を、添付図面に基づいて詳しく説明する。
図1は、本発明に係るJava (登録商標)プログラムでのバイトコードのコンパイル時間短縮システムを示す概略ブロック図であり、図1を参照して、クラスローダー部(class loader)100と、第1のメモリ部200と、ネイティブコード管理部300と、第2のメモリ部400と、実行部500と、ガベージコレクター部600とから構成されている。
図1は、本発明に係るJava (登録商標)プログラムでのバイトコードのコンパイル時間短縮システムを示す概略ブロック図であり、図1を参照して、クラスローダー部(class loader)100と、第1のメモリ部200と、ネイティブコード管理部300と、第2のメモリ部400と、実行部500と、ガベージコレクター部600とから構成されている。
クラスローダー部100は、Java(登録商標)プログラムのソースコードをコンパイルして生成されたバイトコードをローディングする。ここで、前記ローディング過程とは、補助記憶装置に格納されているバイトコードをJava(登録商標)仮想マシンに読み込むことをいう。
第1のメモリ部200は、前記クラスローダー部100でローディングされたバイトコード及びバイトコードをコンパイルして生成されたネイティブコードをアクセス可能な状態に保つ。即ち、前記クラスローダー部100でローディングされたバイトコード及びバイトコードをコンパイルして生成されたネイティブコードを所定のメモリ領域に格納し、後述する実行部500により前記格納されているネイティブコードをアクセスできるようになっている。
第2のメモリ部400は、前記第1のメモリ部200にアクセス可能な状態にローディングされたネイティブコードを格納する。
ネイティブコード管理部300は、前記クラスローダー部100の要請により第2のメモリ部400に格納されているネイティブコードを検索して第1のメモリ部200にローディングし、さらに、第1のメモリ部200にローディングされたネイティブコードを第2のメモリ部400に格納する。ここで、前記ネイティブコード管理部300は、LRU(Least Recently Used)方式を用いて第2のメモリ部400に格納されているネイティブコードを管理する。前記LRU方式とは、格納されているネイティブコードのうち、頻繁に使用されないネイティブコードをチェックして使用頻度の低い順に該当データを捨てることで、ここで、前記使用頻度の低いネイティブコードを捨てる基準は、例えば、メモリ容量または格納された時間によって決定することができる。
実行部500は、前記第1のメモリ部200にアクセス可能な状態にローディングされたネイティブコード及びバイトコードを実行しており、バイトコードインタープリーター(byte code interpreter)510と、ランタイムプロファイラ(Runtime profiler)520と、ネイティブコードコンパイラ(native code compiler)530と、ネイティブコード実行部(native code execution)540とを備えている。
バイトコードインタープリーター510は、前記第1のメモリ部200にアクセス可能な状態にローディングされたバイトコードを解析して実行させる。
ランタイムプロファイラ520は、前記バイトコードインタープリーター510で解析されるバイトコードが頻繁に使用されるバイトコードであるかをチェックし、前記チェックの結果をネイティブコードコンパイラ530に知らせる。
前記ネイティブコードコンパイラ530は、前記ランタイムプロファイラ520でのチェックの結果、前記バイトコードインタープリーター510で解析中のバイトコードが頻繁に使用されるバイトコードである場合、前記解析中のバイトコードをコンパイルしてネイティブコードを生成する。さらに、前記ネイティブコードコンパイラ530は、前記コンパイルされたネイティブコードを第1のメモリ部200にローディングする。
ネイティブコード実行部540は、前記ネイティブコード管理部300により第1のメモリ部200にローディングされたネイティブコードを実行する。
ガベージコレクター部600は、前記第1のメモリ部200でそれ以上実行されないコードが占める空間を自動に回収しており、これにより、前記第1のメモリ部200の空間を確保する。また、それ以上実行されないコードによる占有空間を回収した後にも、第1のメモリ部200の空間が不足する場合には、ネイティブコード管理部300にネイティブコードを第2のメモリ部400に格納するように要請する。
図2は、本発明に係るJava(登録商標)プログラムでのバイトコードのコンパイル時間短縮方法を概略的に示すフローチャートである。
先ず、クラスローダー部100でJava(登録商標)プログラムのソースコードをコンパイルして生成されたバイトコードをローディングし(S100)、その後、ネイティブコード管理部300に前記ローディングされたバイトコードに該当するネイティブコードの検索を要請すると(S110)、前記ネイティブコード管理部300は、要請されたネイティブコードを第2のメモリ部400から検索する(S120)。
先ず、クラスローダー部100でJava(登録商標)プログラムのソースコードをコンパイルして生成されたバイトコードをローディングし(S100)、その後、ネイティブコード管理部300に前記ローディングされたバイトコードに該当するネイティブコードの検索を要請すると(S110)、前記ネイティブコード管理部300は、要請されたネイティブコードを第2のメモリ部400から検索する(S120)。
前記第2のメモリ部400から該当のネイティブコードが検索されると(S130で「はい」)、前記検索されたネイティブコードを第1のメモリ部200に伝送し(S132)、ネイティブコード実行部540は、前記第1のメモリ部200に伝送されたネイティブコードを実行させる(S134)。ここで、前記第2のメモリ部400に格納されているネイティブコードは、Java(登録商標)プログラムの実行時に頻繁に使用されるバイトコードをコンパイルして生成されたネイティブコードである。
本発明では、第2のメモリ部400に格納されているネイティブコードを第1のメモリ部200にローディングして実行すればいいことから、頻繁に使用されるバイトコードを毎回解析して実行することなく、バイトコードの解析過程を省くことができる。
一方、前記ネイティブコード管理部300で第2のメモリ部400を検索した結果、該当のバイトコードに対するネイティブコードが存在しない場合(S130で「いいえ」)、 前記クラスローダー部100は、ローディングされたバイトコードを第1のメモリ部200に伝送する(S140)。
前記第1のメモリ部200にバイトコードがローディングされると、バイトコードインタープリーター510は、前記ローディングされたバイトコードが実行できるように解析する(S150)。
前記バイトコードインタープリーター510でのバイトコードの解析時に、 ランタイムプロファイラ520は、前記バイトコードインタープリーター510で解析されるバイトコードが頻繁に使用されるバイトコードであるかをチェックし(S160)、その結果をネイティブコードコンパイラ530に伝送する。
前記チェックの結果、頻繁に使用されるバイトコードである場合(S170で「はい」)、前記解析されたバイトコードは、ネイティブコードコンパイラ530に伝送されてコンパイルされることにより、ネイティブコードを生成する(S172)。ここで、前記ネイティブコードは、第1のメモリ部200に伝送され、後でネイティブコード管理部300により第2のメモリ部400に格納される(S174)。ここで、前記第2のメモリ部400に格納されているネイティブコードは、ネイティブコード管理部300によりLRU方式で管理される。即ち、第2のメモリ部400の格納領域が限定されているため、LUR方式を適用して格納されているネイティブコードを管理している。
一方、前記チェックの結果、頻繁に使用されないバイトコードであるか、最初に使用されるバイトコードの場合(S170で「いいえ」)、前記バイトコードインタープリーター510で解析されて実行される(S180)。
なお、ガベージコレクター部600は、前記第1のメモリ部200でそれ以上実行されないコードが占める空間を自動に回収することにより、前記第1のメモリ部200の空間を確保し、もし、それ以上実行されないコードを処理した後でも、第1のメモリ部200の空間が不足する場合、ネイティブコード管理部300に第1のメモリ部にローディングされているネイティブコードを第2のメモリ部400に格納するように要請することにより、第1のメモリ部200の空間を確保する。
以上のように、添付図面に基づいて本発明の実施の形態を説明してきたが、このような本発明の基本的な技術的思想を逸脱しない範囲内で、当業界の通常の知識を有する者にとっては、他の多くの変更が可能であろう。また、本発明は、添付の特許請求の範囲により解釈されるべきであることは言うまでもない。
100 クラスローダー部
200 第1のメモリ部
300 ネイティブコード管理部
400 第2のメモリ部
500 実行部
600 ガベージコレクター部
200 第1のメモリ部
300 ネイティブコード管理部
400 第2のメモリ部
500 実行部
600 ガベージコレクター部
Claims (13)
- Java(登録商標)プログラムのソースコードをコンパイルして生成されたバイトコードをローディングするクラスローダー部と、
前記クラスローダー部でローディングされたバイトコード及びバイトコードをコンパイルして生成されたネイティブコードをアクセス可能な状態に保つ第1のメモリ部と、
前記第1のメモリ部にアクセス可能な状態にローディングされたネイティブコードを格納する第2のメモリ部と、
前記クラスローダー部の要請により、第2のメモリ部に格納されているネイティブコードを検索して第1のメモリ部にローディングするネイティブコード管理部と、
前記第1のメモリ部にアクセス可能な状態にローディングされたネイティブコードを実行する実行部とを備えることを特徴とするJava(登録商標)プログラムでのバイトコードのコンパイル時間短縮システム。 - 前記第1のメモリ部でそれ以上実行されないコードが占める空間を自動に回収するガベージコレクター部をさらに備えることを特徴とする請求項1に記載のJava(登録商標)プログラムでのバイトコードのコンパイル時間短縮システム。
- 前記ガベージコレクター部は、第1のメモリ部の空間が不足する場合、ネイティブコード管理部に、第1のメモリ部にローディングされたネイティブコードを第2のメモリ部に格納するように要請することを特徴とする請求項2に記載のJava(登録商標)プログラムでのバイトコードのコンパイル時間短縮システム。
- 前記ネイティブコード管理部は、前記第1のメモリ部にローディングされたネイティブコードを第2のメモリ部に格納することを特徴とする請求項1に記載のJava(登録商標)プログラムでのバイトコードのコンパイル時間短縮システム。
- 前記ネイティブコード管理部は、LRU方式を用いて前記第2のメモリ部に格納されているネイティブコードを管理することを特徴とする請求項1または4に記載のJava(登録商標)プログラムでのバイトコードのコンパイル時間短縮システム。
- 前記実行部は、前記第1のメモリ部にアクセス可能な状態にローディングされたバイトコードを解析して実行させるバイトコードインタープリーターと、
前記バイトコードインタープリーターで解析されるバイトコードが頻繁に使用されるバイトコードであるかをチェックするランタイムプロファイラと、
前記ランタイムプロファイラでチェックした結果、頻繁に使用されるバイトコードである場合、ネイティブコードに変更するネイティブコードコンパイラとをさらに備えることを特徴とする請求項1に記載のJava(登録商標)プログラムでのバイトコードのコンパイル時間短縮システム。 - クラスローダー部がコンパイルされたバイトコードをローディングするステップと、
前記ローディングされたバイトコードに該当するネイティブコードの検索をネイティブコード管理部に要請するステップと、
前記要請されたネイティブコードを第2のメモリ部から検索するステップと、
前記検索された該当ネイティブコードを第1のメモリ部に伝送するステップと、
前記伝送されたネイティブコードをネイティブコード実行部で実行するステップとを含むことを特徴とするJava(登録商標)プログラムでのバイトコードのコンパイル時間短縮方法。 - 前記第2のメモリ部に格納されているネイティブコードは、ネイティブコード管理部によりLRU方式で管理されることを特徴とする請求項7に記載のJava(登録商標)プログラムでのバイトコードのコンパイル時間短縮方法。
- 前記第2のメモリ部からのネイティブコードの検索結果、該当のネイティブコードが存在しない場合には、
クラスローダー部がローディングしたバイトコードを第1のメモリ部に伝送するステップと、
前記第1のメモリ部に伝送されたバイトコードをバイトコードインタープリーターで解析して実行するステップとをさらに含むことを特徴とする請求項7に記載のJava(登録商標)プログラムでのバイトコードのコンパイル時間短縮方法。 - 第1のメモリ部に伝送されたバイトコードをバイトコードインタープリーターで解析して実行するステップは、ランタイムプロファイラが前記バイトコードインタープリーターで解析されているバイトコードが頻繁に使用されるバイトコードであるかをチェックするステップをさらに含むことを特徴とする請求項9に記載のJava(登録商標)プログラムでのバイトコードのコンパイル時間短縮方法。
- 前記チェックの結果、頻繁に使用されるバイトコードである場合、
ネイティブコードコンパイラがバイトコードインタープリーターで解析されたバイトコードをコンパイルしてネイティブコードを生成するステップと、
前記生成されたネイティブコードを第1のメモリ部にローディングするステップと、
前記ローディングされたネイティブコードをネイティブコード管理部により第2のメモリ部に格納するステップとをさらに含むことを特徴とする請求項10に記載のJava(登録商標)プログラムでのバイトコードのコンパイル時間短縮方法。 - 前記第1のメモリ部にローディングされるネイティブコードは、Java(登録商標)プログラムの実行終了時または第1のメモリ部の空間不足時に、第2のメモリ部に格納されることを特徴とする請求項9に記載のJava(登録商標)プログラムでのバイトコードのコンパイル時間短縮方法。
- 前記第2のメモリ部に格納されているネイティブコードは、ネイティブコード管理部によりLRU方式で管理されることを特徴とする請求項9または12に記載のJava(登録商標)プログラムでのバイトコードのコンパイル時間短縮方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2003-0011366A KR100506522B1 (ko) | 2003-02-24 | 2003-02-24 | 자바 프로그램에서 바이트 코드의 컴파일 시간 단축시스템 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004259252A true JP2004259252A (ja) | 2004-09-16 |
Family
ID=32866937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003359830A Pending JP2004259252A (ja) | 2003-02-24 | 2003-10-20 | Java(登録商標)プログラムでのバイトコードのコンパイル時間短縮システム及び方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20040168162A1 (ja) |
JP (1) | JP2004259252A (ja) |
KR (1) | KR100506522B1 (ja) |
CN (1) | CN1260651C (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9170830B2 (en) | 2013-03-26 | 2015-10-27 | Fujitsu Limited | Method for controlling program execution |
JP2015219637A (ja) * | 2014-05-15 | 2015-12-07 | 富士通株式会社 | 処理実行プログラム、処理実行方法、及び情報処理装置 |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7113980B2 (en) | 2001-09-06 | 2006-09-26 | Bea Systems, Inc. | Exactly once JMS communication |
US7707547B2 (en) * | 2005-03-11 | 2010-04-27 | Aptana, Inc. | System and method for creating target byte code |
US7844958B2 (en) * | 2005-03-11 | 2010-11-30 | Aptana, Inc. | System and method for creating target byte code |
KR100763177B1 (ko) * | 2005-04-21 | 2007-10-04 | 삼성전자주식회사 | 자바 가상 머신의 명령어 수행 방법 및 그 장치 |
US7870265B2 (en) * | 2005-06-30 | 2011-01-11 | Oracle International Corporation | System and method for managing communications sessions in a network |
KR101140522B1 (ko) * | 2005-07-14 | 2012-04-30 | 에스케이플래닛 주식회사 | 객체 관리 시스템 및 방법 |
KR100678912B1 (ko) | 2005-10-18 | 2007-02-05 | 삼성전자주식회사 | 메소드 바이트코드 해석 방법 및 상기 방법에 의해동작하는 시스템 |
CN101346634B (zh) * | 2005-11-04 | 2012-10-24 | 甲骨文国际公司 | 用于通信网络中的网守的***和方法 |
US20070169012A1 (en) * | 2005-11-14 | 2007-07-19 | Microsoft Corporation | Asynchronous just-in-time compilation |
US7353504B2 (en) * | 2005-12-09 | 2008-04-01 | Bea Systems, Inc. | System and method for efficiently generating native code calls from byte code in virtual machines |
CN100339831C (zh) * | 2005-12-14 | 2007-09-26 | 浙江大学 | 应用于Java操作***中虚拟机的编译体系实现方法 |
US8112525B2 (en) * | 2006-05-16 | 2012-02-07 | Oracle International Corporation | Engine near cache for reducing latency in a telecommunications environment |
US8171466B2 (en) | 2006-05-16 | 2012-05-01 | Oracle International Corporation | Hitless application upgrade for SIP server architecture |
US8001250B2 (en) * | 2006-05-16 | 2011-08-16 | Oracle International Corporation | SIP and HTTP convergence in network computing environments |
US8219697B2 (en) | 2006-05-17 | 2012-07-10 | Oracle International Corporation | Diameter protocol and SH interface support for SIP server architecture |
US7661027B2 (en) * | 2006-10-10 | 2010-02-09 | Bea Systems, Inc. | SIP server architecture fault tolerance and failover |
US20080086567A1 (en) * | 2006-10-10 | 2008-04-10 | Bea Systems, Inc. | SIP server architecture for improving latency in message processing |
US8078737B2 (en) * | 2006-12-13 | 2011-12-13 | Oracle International Corporation | System and method for efficient storage of long-lived session state in a SIP server |
US9667430B2 (en) * | 2006-12-13 | 2017-05-30 | Oracle International Corporation | System and method for a SIP server with offline charging |
US20080147551A1 (en) * | 2006-12-13 | 2008-06-19 | Bea Systems, Inc. | System and Method for a SIP Server with Online Charging |
US8037460B2 (en) * | 2007-01-26 | 2011-10-11 | Oracle International Corporation | Code persistence and dependency management for dynamic compilation in a database management system |
US8413125B2 (en) * | 2007-01-26 | 2013-04-02 | Oracle International Corporation | Asynchronous dynamic compilation based on multi-session profiling to produce shared native code |
US8341609B2 (en) * | 2007-01-26 | 2012-12-25 | Oracle International Corporation | Code generation in the presence of paged memory |
US7895475B2 (en) * | 2007-07-11 | 2011-02-22 | Oracle International Corporation | System and method for providing an instrumentation service using dye injection and filtering in a SIP application server environment |
US8914774B1 (en) | 2007-11-15 | 2014-12-16 | Appcelerator, Inc. | System and method for tagging code to determine where the code runs |
US8954989B1 (en) | 2007-11-19 | 2015-02-10 | Appcelerator, Inc. | Flexible, event-driven JavaScript server architecture |
US8260845B1 (en) | 2007-11-21 | 2012-09-04 | Appcelerator, Inc. | System and method for auto-generating JavaScript proxies and meta-proxies |
US8719451B1 (en) | 2007-11-23 | 2014-05-06 | Appcelerator, Inc. | System and method for on-the-fly, post-processing document object model manipulation |
US8566807B1 (en) | 2007-11-23 | 2013-10-22 | Appcelerator, Inc. | System and method for accessibility of document object model and JavaScript by other platforms |
US8819539B1 (en) | 2007-12-03 | 2014-08-26 | Appcelerator, Inc. | On-the-fly rewriting of uniform resource locators in a web-page |
US8806431B1 (en) | 2007-12-03 | 2014-08-12 | Appecelerator, Inc. | Aspect oriented programming |
US8756579B1 (en) | 2007-12-03 | 2014-06-17 | Appcelerator, Inc. | Client-side and server-side unified validation |
US8527860B1 (en) | 2007-12-04 | 2013-09-03 | Appcelerator, Inc. | System and method for exposing the dynamic web server-side |
US8938491B1 (en) | 2007-12-04 | 2015-01-20 | Appcelerator, Inc. | System and method for secure binding of client calls and server functions |
US8639743B1 (en) | 2007-12-05 | 2014-01-28 | Appcelerator, Inc. | System and method for on-the-fly rewriting of JavaScript |
US8335982B1 (en) | 2007-12-05 | 2012-12-18 | Appcelerator, Inc. | System and method for binding a document object model through JavaScript callbacks |
US8285813B1 (en) | 2007-12-05 | 2012-10-09 | Appcelerator, Inc. | System and method for emulating different user agents on a server |
US8296745B2 (en) * | 2007-12-31 | 2012-10-23 | Oracle America, Inc. | Method and apparatus for portable stub generation |
US8291079B1 (en) | 2008-06-04 | 2012-10-16 | Appcelerator, Inc. | System and method for developing, deploying, managing and monitoring a web application in a single environment |
US8880678B1 (en) | 2008-06-05 | 2014-11-04 | Appcelerator, Inc. | System and method for managing and monitoring a web application using multiple cloud providers |
US7596620B1 (en) | 2008-11-04 | 2009-09-29 | Aptana, Inc. | System and method for developing, deploying, managing and monitoring a web application in a single environment |
KR101116939B1 (ko) | 2009-12-10 | 2012-03-14 | 주식회사 엘지유플러스 | 이동 단말기 및 상기 이동 단말기에서 웹 애플리케이션 실행 방법 |
CN102135877B (zh) * | 2010-01-27 | 2014-05-28 | 金蝶软件(中国)有限公司 | 自动化构建方法及装置 |
KR101334938B1 (ko) * | 2012-06-20 | 2013-12-02 | 주식회사 한국스마트카드 | 스크립트 파일 기반으로 카드 처리를 수행하는 rf 결재 단말기 |
US9355011B2 (en) * | 2014-06-09 | 2016-05-31 | International Business Machines Corporation | Detecting potential class loader problems using the class search path sequence for each class loader |
US9864649B2 (en) | 2015-03-27 | 2018-01-09 | Intel Corporation | Technologies for root cause identification of use-after-free memory corruption bugs |
CN110704036B (zh) * | 2018-07-10 | 2023-05-26 | 阿里巴巴集团控股有限公司 | 构建脚本的方法、装置和存储介质 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69713400T2 (de) * | 1996-01-24 | 2002-10-31 | Sun Microsystems, Inc. | Prozessor mit Bereichsüberprüfung bei Matrixzugriffen |
US6110226A (en) * | 1998-02-19 | 2000-08-29 | Cygnus Solutions | Java development environment using optimizing ahead-of-time compiler |
US6421689B1 (en) * | 1998-06-30 | 2002-07-16 | Oracle Corporation | Moderately conservative, mostly copying 2 space garbage collector in the nursery of a generational memory manager |
US6295638B1 (en) * | 1998-07-30 | 2001-09-25 | International Business Machines Corporation | Method and apparatus for loading native object code in data processing system |
US6295643B1 (en) * | 1998-12-10 | 2001-09-25 | International Business Machines Corporation | Method and apparatus for improving java virtual machine performance using persistent execution information |
JP2001056764A (ja) * | 1999-08-18 | 2001-02-27 | Access:Kk | 仮想計算機の実行方法および装置 |
KR100319755B1 (ko) * | 1999-12-02 | 2002-01-05 | 오길록 | 내장형 자바가상머신을 위한 바이트코드 압축 방법 |
US6484188B1 (en) * | 1999-12-30 | 2002-11-19 | Intel Corporation | Optimization of garbage collection code in the context of raw native interface function calls in the java programming language |
US6854115B1 (en) * | 2000-06-02 | 2005-02-08 | Sun Microsystems, Inc. | Process persistence in a virtual machine |
US6836884B1 (en) * | 2001-06-04 | 2004-12-28 | Microsoft Corporation | Method and system for editing software programs |
WO2004040445A1 (en) * | 2002-10-29 | 2004-05-13 | Freescale Semiconductor, Inc. | Method and apparatus for selectively optimizing interpreted language code |
-
2003
- 2003-02-24 KR KR10-2003-0011366A patent/KR100506522B1/ko not_active IP Right Cessation
- 2003-10-20 JP JP2003359830A patent/JP2004259252A/ja active Pending
- 2003-12-09 US US10/730,046 patent/US20040168162A1/en not_active Abandoned
-
2004
- 2004-01-21 CN CN200410002968.4A patent/CN1260651C/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9170830B2 (en) | 2013-03-26 | 2015-10-27 | Fujitsu Limited | Method for controlling program execution |
JP2015219637A (ja) * | 2014-05-15 | 2015-12-07 | 富士通株式会社 | 処理実行プログラム、処理実行方法、及び情報処理装置 |
Also Published As
Publication number | Publication date |
---|---|
CN1525321A (zh) | 2004-09-01 |
US20040168162A1 (en) | 2004-08-26 |
KR20040076048A (ko) | 2004-08-31 |
CN1260651C (zh) | 2006-06-21 |
KR100506522B1 (ko) | 2005-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004259252A (ja) | Java(登録商標)プログラムでのバイトコードのコンパイル時間短縮システム及び方法 | |
US7543285B2 (en) | Method and system of adaptive dynamic compiler resolution | |
US7406684B2 (en) | Compiler, dynamic compiler, and replay compiler | |
US8621443B2 (en) | Processor emulation using speculative forward translation | |
US20150067658A1 (en) | Size dependent type in accessing dynamically typed array objects | |
US7246346B2 (en) | System and method for persisting dynamically generated code in a directly addressable and executable storage medium | |
CN100365577C (zh) | 永久高速缓存装置和方法 | |
US10216497B2 (en) | Selective compiling method, device, and corresponding computer program product | |
JP2000040007A (ja) | バイトコ―ド・コンパイラのためのコ―ド生成 | |
US8627316B2 (en) | Mobile communications device application processing system | |
US8214812B2 (en) | Method of interpreting method bytecode and system operated by the same | |
US6681234B2 (en) | Method and apparatus for storing long-lived objects in a virtual machine | |
US6931638B2 (en) | Method and apparatus to facilitate sharing optimized instruction code in a multitasking virtual machine | |
US6581077B2 (en) | Method and apparatus for storing short-lived objects in a virtual machine | |
KR100493893B1 (ko) | 자바 프로그램에서 클래스 로딩 과정을 단축시키는 시스템및 방법 | |
Wagner et al. | “Slimming” a Java virtual machine by way of cold code removal and optimistic partial program loading | |
JP2005011349A (ja) | 電子システムおよびガーベジコレクション方法 | |
WO2018125408A1 (en) | Automatic identification and generation of non-temporal store and load operations in a dynamic optimization environment | |
US6738969B2 (en) | Non-intrusive gathering of code usage information to facilitate removing unused compiled code | |
US7036120B2 (en) | Two tier clusters for representation of objects in Java programming environments | |
KR20120006664A (ko) | 달빅(Dalvik) 가상머신(Virtual Machine: VM)이 탑재된 단말기에서 자바 클래스 로딩 방법 | |
JP2000330792A (ja) | バイトコードプログラム実行制御システム | |
US8181177B1 (en) | Reducing the number of heap handles in a program | |
US7539822B1 (en) | Method and apparatus for facilitating faster execution of code on a memory-constrained computing device | |
Hartikainen et al. | On mobile java memory consumption |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051004 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060104 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060221 |