JP2009009253A - Program execution method, program, and program execution system - Google Patents

Program execution method, program, and program execution system Download PDF

Info

Publication number
JP2009009253A
JP2009009253A JP2007168489A JP2007168489A JP2009009253A JP 2009009253 A JP2009009253 A JP 2009009253A JP 2007168489 A JP2007168489 A JP 2007168489A JP 2007168489 A JP2007168489 A JP 2007168489A JP 2009009253 A JP2009009253 A JP 2009009253A
Authority
JP
Japan
Prior art keywords
accelerator
program
execution
jit
determining
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
JP2007168489A
Other languages
Japanese (ja)
Inventor
Takashi Hirooka
孝志 廣岡
Shinichiro Kawasaki
進一郎 川崎
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2007168489A priority Critical patent/JP2009009253A/en
Publication of JP2009009253A publication Critical patent/JP2009009253A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a technology for increasing program speed by optimization of a "JIT application criterion" based on an "accelerator adequacy point" and a technology for reducing memory consumption by reducing codes to be compiled by the optimization. <P>SOLUTION: In the virtual machine 2 of a program execution system, a task for program compilation and analysis inputs an intermediate code, and detects a static "accelerator adequacy point" for each program section, and outputs "JIT application criterion information", and a task for program execution inputs an intermediate code or a native code, and executes a program, and decides whether to apply the "accelerator" and the "JIT" from the "JIT application criterion information" of each program section, and executes the program by the "interpreter having the accelerator" or the "JIT". <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明は、プログラム実行技術に関し、特に、「アクセレラレータ」と「JIT」を有する仮想マシンに適用して有効な技術に関する。   The present invention relates to a program execution technique, and more particularly to a technique effective when applied to a virtual machine having an “accelerator” and a “JIT”.

例えば、中間コードを高速に実行させるプログラム実行方法として、Java(登録商標)の場合、実行時にメソッドの実行回数をカウントし、閾値を超えた際にコンパイルし、以降コンパイル結果であるネイティブコードを利用することで高速化する「JIT」と呼ばれる方法が存在する。また、中間コードを高速に実行させるプログラム実行方法として、中間コードの翻訳、実行をハードウェアで実施することで高速化する「アクセレラレータ」と呼ばれる方法が存在する。   For example, in the case of Java (registered trademark) as a program execution method for executing intermediate code at high speed, the number of method executions is counted at the time of execution, and the program is compiled when the threshold value is exceeded. There is a method called “JIT” that speeds up the process. Further, as a program execution method for executing intermediate code at high speed, there is a method called “accelerator” that speeds up the translation and execution of the intermediate code by hardware.

さらに、特許文献1に記載の方法では、「JIT」コンパイラのコンパイル部分を事前のアイドル時間を利用して、1つだけコンパイルして利用する。これにより、コンパイル時間なしにネイティブコードが利用できコンパイル時間分高速化できる。   Further, in the method described in Patent Document 1, only one compiled part of the “JIT” compiler is compiled and used by using the idle time in advance. As a result, native code can be used without compiling time, and the speed can be increased by compiling time.

また、特許文献2に記載の方法では、実行用タスク、コンパイル用タスクを設け、前者を優先して処理し、コンパイル対象箇所の1回目の実行はインタープリタ処理、2回目以降はコンパイル結果を利用して処理する。これにより、「コンパイル時間+ネイティブコード実行時間―インタープリタ処理時間」分高速化される。   In the method described in Patent Document 2, an execution task and a compile task are provided, the former is preferentially processed, and the first execution of the portion to be compiled uses an interpreter process, and the second and subsequent uses a compile result. To process. As a result, the speed is increased by “compile time + native code execution time−interpreter processing time”.

また、特許文献3に記載の方法では、静的解析によりプログラム中の実行回数の多い部分を見積り、これをベースに優先順位を付けて事前コンパイルする。これにより、実行時にネイティブコードが準備されている場合、コンパイル時間分高速化される。   Further, in the method described in Patent Document 3, a portion where the number of times of execution in a program is large is estimated by static analysis, and prioritization is performed based on the estimated portion. This speeds up compilation time if native code is prepared at runtime.

また、特許文献4に記載の方法では、仮想マシンの実行においてアクセレラレータ非対応命令をキャッシュすることによりインタープリタ実行を高速化できる。
特開平11−237989号公報 特開2004−355277号公報 特開2004−326760号公報 特開2004−280766号公報
In the method described in Patent Document 4, interpreter non-acceleration instructions can be cached in virtual machine execution to speed up interpreter execution.
Japanese Patent Laid-Open No. 11-237989 JP 2004-355277 A JP 2004-326760 A Japanese Patent Laid-Open No. 2004-280766

ところで、「アクセレラレータ」と「JIT」を有する仮想マシンにおいて、両者には高速化に関して得て不得手が存在する。プログラム部分毎にどちらの技術を適用すべきかは現状明示されていない。最適な選択を決定する方法は、現在の重要な課題の一つである。前述した特許文献4に記載の方法は、「アクセレラレータ」を有する仮想マシンを高速化させるが、「JIT」との協調に関しては記載がない。   By the way, in a virtual machine having “accelerator” and “JIT”, both of them are not good at speeding up. Which technology should be applied for each program part is not clearly specified. How to determine the best choice is one of the current important challenges. The method described in Patent Document 4 described above increases the speed of a virtual machine having an “accelerator”, but there is no description regarding cooperation with “JIT”.

そこで、本発明は、上記事情に鑑みて課題を解決すべくなされたものであり、発明の目的は、「アクセレラレータ適性度合いポイント」に基づいた「JIT適用判定基準」の最適化により、プログラムを高速化する技術を提供することにある。また、上記最適化により、コンパイル対象範囲を抑えてメモリ使用量を低減させる技術を提供することにある。   Accordingly, the present invention has been made in order to solve the problems in view of the above circumstances, and an object of the invention is to optimize the “JIT application determination criteria” based on the “accelerator suitability degree point”, and to program It is to provide a technology for speeding up the process. It is another object of the present invention to provide a technique for reducing the memory usage by suppressing the compilation target range by the above optimization.

本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。   The above and other objects and novel features of the present invention will be apparent from the description of this specification and the accompanying drawings.

本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。   Of the inventions disclosed in the present application, the outline of typical ones will be briefly described as follows.

本発明は、上記目的を達成するために、プログラムコンパイル、解析を担当するタスクで、中間コードを入力しプログラム部分毎の静的な「アクセレラレータ適性度合いポイント」を検出して「JIT適用判定基準情報」を出力する。次に、プログラム実行を担当するタスクで、中間コードもしくはネイティブコードを入力してプログラム実行し、プログラム部分毎の「JIT適用判定基準情報」から「アクセレラレータ」と「JIT」の適用判定を行い、「アクセレラレータを有するインタープリタ」、もしくは「JIT」でプログラムを実行する。このようなプログラム実行方法、プログラム、およびプログラム実行システムに適用するものである。   In order to achieve the above object, the present invention is a task in charge of program compilation and analysis, which inputs intermediate code and detects static “accelerator suitability degree points” for each program part to determine “JIT application determination” "Reference information" is output. Next, in the task in charge of program execution, input intermediate code or native code to execute the program, and determine whether to apply “Accelerator” and “JIT” from “JIT application criteria information” for each program part. The program is executed by “interpreter having accelerator” or “JIT”. The present invention is applied to such a program execution method, program, and program execution system.

本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。   Among the inventions disclosed in the present application, effects obtained by typical ones will be briefly described as follows.

本発明によれば、静的解析によって抽出されるプログラム部分毎の「アクセレラレータ適性度合いポイント」に基づく「JIT適用判定基準情報」から、最適な「アクセレラレータ」と「JIT」の適用判定を行い、「アクセレラレータを有するインタープリタ」、もしくは「JIT」で最適にプログラム実行を実施することにより、プログラムの高速化が可能となる。   According to the present invention, from the “JIT application determination criterion information” based on the “accelerator suitability degree point” for each program part extracted by static analysis, the optimum application determination of “accelerator” and “JIT” is performed. The program is executed optimally by “interpreter having accelerator” or “JIT”, so that the program can be speeded up.

また、本発明によれば、「アクセレラレータ適性度合いポイント」に基づいた「JIT適用判定基準」の最適化により、コンパイル対象範囲を抑えてメモリ使用量を低減させることが可能となる。   Further, according to the present invention, by optimizing the “JIT application determination criterion” based on the “accelerator suitability degree point”, it is possible to suppress the compilation target range and reduce the memory usage.

以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、これにより本発明が限定されるものではない。また、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. Note that the present invention is not limited thereby. In all the drawings for explaining the embodiments, the same members are denoted by the same reference symbols in principle, and the repeated explanation thereof is omitted.

<本発明の実施の形態の概要>
本発明の実施の形態では、計算機によりプログラム実行の各手段を実現することを特徴とするプログラム実行システム、さらに、計算機によりプログラム実行の各ステップを実行することを特徴とするプログラム実行方法について述べる。しかしながら、本発明は、これに限定されるものではなく、計算機にプログラム実行の各ステップを実行させることを特徴とするプログラムについても適用可能である。
<Outline of Embodiment of the Present Invention>
In the embodiment of the present invention, a program execution system characterized by realizing each means of program execution by a computer and a program execution method characterized by executing each step of program execution by a computer will be described. However, the present invention is not limited to this, and can also be applied to a program characterized by causing a computer to execute each step of program execution.

<プログラム実行システム>
図1は、本実施の形態のプログラム実行システムの概要を示す図である。本実施の形態のプログラム実行システムは、計算機上で実施され、プログラムの実行を、初めはアクセレラレータを含むインタープリタで実施し、繰返し実行される回数の閾値に従って途中でコンパイラによる実施に切り替えるプログラム実行方式において、プログラム部分毎のアクセレラレータで実行した場合とコンパイラで実行した場合の性能差を見積り、コンパイラによる実施に切り替えるタイミングを最適化してプログラム実行を高速化する方法である。
<Program execution system>
FIG. 1 is a diagram showing an outline of a program execution system according to the present embodiment. The program execution system according to the present embodiment is executed on a computer, and program execution is initially executed by an interpreter including an accelerator, and the program execution is switched to execution by a compiler in the middle according to a threshold value of the number of times of repeated execution. In this method, the performance difference between the case where the program is executed by the accelerator and the case where the program is executed by the compiler is estimated, and the timing for switching to the implementation by the compiler is optimized to speed up the program execution.

図1において、仮想マシン2は、高級言語で記述されたソースプログラムを変換した中間コード1を入力として実行する。仮想マシン2は、中間コード1の実行を担当するタスクとコンパイル、解析を担当するタスクをマルチコア環境において任意のコア(CPU)に割当てるタスク割当部3と、中間コード1の実行を制御する実行制御部4と、中間コード1のコンパイル、解析を制御するコンパイル/解析制御部7と、「アクセレラレータ非対応命令の重み」と「メソッド毎のコンパイラ適用閾値」から成るアクセレラレータ(ACC)/コンパイラ(JIT)判定情報21と、中間コード1のコンパイル結果であるネイティブコード22から構成される。   In FIG. 1, a virtual machine 2 executes an intermediate code 1 obtained by converting a source program described in a high-level language as an input. The virtual machine 2 includes a task allocation unit 3 that allocates a task in charge of executing the intermediate code 1 and a task in charge of compilation and analysis to an arbitrary core (CPU) in a multi-core environment, and an execution control that controls the execution of the intermediate code 1 Part 4, a compile / analysis control part 7 for controlling the compilation and analysis of the intermediate code 1, and an accelerator (ACC) / according to “weight of accelerator-incompatible instruction” and “compiler application threshold for each method” It is composed of compiler (JIT) determination information 21 and native code 22 which is a compilation result of intermediate code 1.

また、実行制御部4は、アクセレラレータ/コンパイラ判定情報21を入力してアクセレラレータ/コンパイラの適用判定を行うアクセレラレータ(ACC)/コンパイラ(JIT)判定部5と実行部6から構成される。コンパイル/解析制御部7は、アクセレラレータ/コンパイラ判定情報21を出力する静的解析部8とコンパイル部9から構成される。さらに、実行部6は、動的解析によってアクセレラレータ/コンパイラ判定情報21を更新する動的解析部61と、インタープリタ実行するインタープリタ(INT)部62と、ネイティブコード22を出力するコンパイラ(JIT)部63から構成される。   The execution control unit 4 includes an accelerator (ACC) / compiler (JIT) determination unit 5 and an execution unit 6 that receive the accelerator / compiler determination information 21 and determine whether to apply the accelerator / compiler. Is done. The compile / analysis control unit 7 includes a static analysis unit 8 that outputs accelerator / compiler determination information 21 and a compile unit 9. Furthermore, the execution unit 6 includes a dynamic analysis unit 61 that updates the accelerator / compiler determination information 21 by dynamic analysis, an interpreter (INT) unit 62 that executes an interpreter, and a compiler (JIT) that outputs native code 22. The unit 63 is configured.

特に、この仮想マシン2では、コンパイル/解析制御部7が、ソースプログラムから変換された中間コード1を入力し、プログラム部分毎の「アクセレラレータ適性度合いポイント」を決定し、この「アクセレラレータ適性度合いポイント」に基づき「JIT適用判定基準情報」を決定する各手段として機能する。また、実行制御部4が、「JIT適用判定基準情報」に基づき「アクセレラレータを有するインタープリタ」と「JIT」の適用判定を行い、この適用判定の結果に基づき「アクセレラレータを有するインタープリタ」による実行と「JIT」による実行を切り分けてプログラムを実行する各手段として機能する。   In particular, in this virtual machine 2, the compile / analysis control unit 7 inputs the intermediate code 1 converted from the source program, determines the “accelerator suitability degree point” for each program part, and this “accelerator It functions as each means for determining “JIT application determination criterion information” based on “aptitude degree point”. Further, the execution control unit 4 performs application determination of “interpreter having accelerator” and “JIT” based on “JIT application determination criterion information”, and “interpreter having accelerator” based on the result of the application determination. It functions as each means for executing the program by separating the execution by “JIT” and the execution by “JIT”.

具体的に、コンパイル/解析制御部7がプログラム部分毎の「アクセレラレータ適性度合いポイント」を決定する際は、「ループ繰返し回数」の動的な情報を検出し、この動的な情報に基づき更に正確なプログラム部分毎の「アクセレラレータ適性度合いポイント」を決定する各手段として機能する。あるいは、プログラム部分毎の「アクセレラレータ適性度合いポイント」を決定する際は、予めベンチマークプログラムを実行し、「アクセレラレータ非対応命令」の実行時間の平均値を検出し、各「アクセレラレータ非対応命令」の実行時間の平均値をポイント化して「アクセレラレータ非対応命令重み」とし、各プログラム部分毎に含まれる「アクセレラレータ非対応命令重み」の合計を当該プログラム部分の「アクセレラレータ適性度合いポイント」として決定する各手段として機能する。   Specifically, when the compile / analysis control unit 7 determines the “accelerator suitability degree point” for each program part, it detects dynamic information of the “number of loop iterations” and based on this dynamic information Furthermore, it functions as each means for determining an “accelerator suitability degree point” for each correct program part. Alternatively, when determining the “accelerator suitability degree point” for each program part, the benchmark program is executed in advance, the average execution time of the “accelerator non-corresponding instruction” is detected, and each “accelerator The average execution time of “non-corresponding instructions” is pointed to “accelerator non-corresponding instruction weights”, and the total of “accelerator non-corresponding instruction weights” included in each program part is the “accelerator non-corresponding instruction weight”. It functions as each means to be determined as “relaxer aptitude degree point”.

<プログラム実行方法>
図2〜図7を用いて、本実施の形態のプログラム実行システムにおけるプログラム実行方法を説明する。このプログラム実行方法では、仮想マシン2のコンパイル/解析制御部7で、ソースプログラムから変換された中間コードを入力し、プログラム部分毎の「アクセレラレータ適性度合いポイント」を決定し、この「アクセレラレータ適性度合いポイント」に基づき「JIT適用判定基準情報」を決定する各ステップを実行する。また、実行制御部4で、「JIT適用判定基準情報」に基づき「アクセレラレータを有するインタープリタ」と「JIT」の適用判定を行い、この適用判定の結果に基づき「アクセレラレータを有するインタープリタ」による実行と「JIT」による実行を切り分けてプログラムを実行する各ステップを実行する。以下において、各図に基づき具体的に説明する。
<Program execution method>
A program execution method in the program execution system according to the present embodiment will be described with reference to FIGS. In this program execution method, the compile / analysis control unit 7 of the virtual machine 2 inputs the intermediate code converted from the source program, determines the “accelerator suitability degree point” for each program part, and this “accelerator” Each step of determining “JIT application determination criterion information” based on “the suitability degree point of the generator” is executed. Further, the execution control unit 4 determines whether to apply “interpreter having accelerator” and “JIT” based on “JIT application determination criterion information”, and “interpreter having accelerator” based on the result of the application determination. Each step of executing the program is executed by separating the execution by “JIT” and the execution by “JIT”. Below, it demonstrates concretely based on each figure.

図2は、図1におけるタスク割当部3の動作フロチャートである。図2を用いて、仮想マシン2の起動後に実施されるタスク割当処理の流れを説明する。まず、処理ステップ31でコア番号を判定し、“1”の場合(Y)、処理ステップ33へ進み、中間コード1の実行処理を実施し、その後、本タスク割当処理を終了する。処理ステップ31でコア番号が“1”以外の場合(N)、処理ステップ32に進む。次に、処理ステップ32でコア番号を判定し、“2”の場合(Y)、処理ステップ34へ進み、中間コード1のコンパイル、解析処理を実施し、その後、本タスク割当処理を終了する。処理ステップ32でコア番号が“2”以外の場合(N)、本タスク割当処理を終了する。   FIG. 2 is an operation flowchart of the task assignment unit 3 in FIG. With reference to FIG. 2, a flow of task assignment processing performed after the virtual machine 2 is started will be described. First, the core number is determined in process step 31. If “1” (Y), the process proceeds to process step 33, the execution process of the intermediate code 1 is performed, and then the task allocation process is terminated. If the core number is other than “1” in process step 31 (N), the process proceeds to process step 32. Next, the core number is determined in process step 32. If it is “2” (Y), the process proceeds to process step 34, where the intermediate code 1 is compiled and analyzed, and then this task allocation process is terminated. If the core number is other than “2” in process step 32 (N), the task assignment process is terminated.

図3は、図1における静的解析部8の動作フロチャートである。図3を用いて、中間コード1の静的解析処理の流れを説明する。まず、処理ステップ801で中間コード1を入力する。図5に示すJava(登録商標)言語で記述されたソースプログラムから変換された中間コードが入力された場合を想定して説明する。なお、Java(登録商標)では、中間コードに相当するコードをバイトコードと呼んでいる。Java(登録商標)ソースプログラムからバイトコードへ変換する方法については、サン・マイクロシステムズ社などから公開された周知の技術であるため、本明細書では説明を割愛する。   FIG. 3 is an operation flowchart of the static analysis unit 8 in FIG. The flow of the static analysis process for the intermediate code 1 will be described with reference to FIG. First, an intermediate code 1 is input in processing step 801. Description will be made assuming that an intermediate code converted from a source program described in the Java (registered trademark) language shown in FIG. 5 is input. In Java (registered trademark), a code corresponding to an intermediate code is called a byte code. A method for converting a Java (registered trademark) source program into bytecode is a well-known technique disclosed by Sun Microsystems, Inc., and therefore will not be described in this specification.

次に、処理ステップ802で「アクセレラレータ非対応命令重みテーブル」を入力する。図6を例に説明する。アクセレラレータ非対応命令重みは、予め適当なベンチマークプログラムを実行させて、命令毎の実行時間を測定し、平均をとってポイント化した値が設定されている。「アクセレラレータ非対応命令重みテーブル」は「アクセレラレータ非対応命令名称」2101、「重み」2102から構成され、本例では「opcode1」の重みとして「100」2103、「opcode2」の重みとして「10」2104、「opcode3」の重みとして「10」2105が設定されているものとする。   Next, in the processing step 802, the “accelerator non-corresponding instruction weight table” is input. An example will be described with reference to FIG. The accelerator non-corresponding instruction weight is set to a value obtained by executing an appropriate benchmark program in advance, measuring the execution time for each instruction, and taking the average as a point. The “accelerator-incompatible instruction weight table” includes “accelerator-incompatible instruction name” 2101 and “weight” 2102. In this example, “opcode1” is weighted as “100” 2103 and “opcode2” as weight. It is assumed that “10” 2104 and “10” 2105 are set as the weights of “opcode3”.

次に、処理ステップ803でメソッドの検出を行い、図5の104行目に示した「method1」を検出する。次に、処理ステップ804で当メソッド重みに値「0」を設定する。次に、処理ステップ805でループの検出を行い、図5の106行目に示したループを検出する。次に処理ステップ806でループ繰返し回数「100」を検出する。次に、処理ステップ807で当ループ重みに値「0」を設定する。次に、処理ステップ808で命令の検出を行い、図5の107行目の「opcode1」を検出する。   Next, in process step 803, a method is detected, and “method1” shown in the 104th line in FIG. 5 is detected. Next, in process step 804, a value “0” is set as the method weight. Next, a loop is detected in process step 805, and the loop shown in the 106th line in FIG. 5 is detected. Next, in process step 806, the loop repetition count “100” is detected. Next, in processing step 807, a value “0” is set to the loop weight. Next, in step 808, an instruction is detected, and “opcode1” on line 107 in FIG. 5 is detected.

次に、処理ステップ809で当命令がアクセレラレータ非対応命令か否かを判定し、「opcode1」が「アクセレラレータ非対応命令重みテーブル」に登録されたアクセレラレータ非対応命令であるため(Y)、処理ステップ810に進む。なお、処理ステップ809で当命令がアクセレラレータ非対応命令以外と判定された場合(N)は、処理ステップ812へ進む。   Next, it is determined in processing step 809 whether or not the instruction is an accelerator non-corresponding instruction, and “opcode1” is an accelerator non-corresponding instruction registered in the “accelerator non-corresponding instruction weight table”. (Y) Proceed to processing step 810. If it is determined in process step 809 that the instruction is not an accelerator non-corresponding instruction (N), the process proceeds to process step 812.

次に、処理ステップ810で当命令「opcode1」の「アクセレラレータ非対応命令重み」として「100」を検出する。次に、処理ステップ811で当ループ重み「0」と当命令重み「100」の和「100」を当ループ重みに設定する。次に、処理ステップ812で当ループ中に他に命令が存在するか否かを判定し、図5の108行目に示した命令「opcode2」が存在するため(Y)、処理ステップ809に戻り、上記処理を繰り返し、当ループ重みに「110」を設定する。次に、処理ステップ812で当ループ中に他に命令が存在しないため(N)、処理ステップ813へ進む。   Next, in a processing step 810, “100” is detected as the “accelerator-incompatible instruction weight” of the instruction “opcode1”. Next, in processing step 811, the sum “100” of the loop weight “0” and the command weight “100” is set as the loop weight. Next, it is determined in processing step 812 whether or not another instruction exists in the loop. Since the instruction “opcode2” shown in the 108th line in FIG. 5 exists (Y), the processing returns to processing step 809. The above processing is repeated to set “110” as the loop weight. Next, since there is no other instruction in the loop at process step 812 (N), the process proceeds to process step 813.

次に、処理ステップ813でループ繰返し回数が定数か否かを判定し、定数「100」であるため(Y)、処理ステップ814へ進む。処理ステップ814では、当ループ重み「110」とループ繰返し回数「100」の積「11000」を当ループ重みに設定し、処理ステップ816へ進む。なお、処理ステップ813の判定で、ループ繰返し回数が変数であった場合(N)、処理ステップ815へ進み、当ループ重みに当ループ重みと暫定値「10」の積を設定し、処理ステップ816へ進む。なお、動的解析部61で動的解析を実施し、ループ繰返し回数が確定した場合は、暫定値「10」を確定した値に置換し当ループ重みを再計算する。   Next, in processing step 813, it is determined whether or not the number of loop iterations is a constant. Since it is a constant “100” (Y), the processing proceeds to processing step 814. In process step 814, the product “11000” of the current loop weight “110” and the loop iteration count “100” is set as the current loop weight, and the process proceeds to process step 816. If it is determined in process step 813 that the number of loop iterations is a variable (N), the process proceeds to process step 815 to set the product of the loop weight and the provisional value “10” as the loop weight. Proceed to When dynamic analysis is performed by the dynamic analysis unit 61 and the loop repetition count is determined, the provisional value “10” is replaced with the determined value, and the loop weight is recalculated.

次に、処理ステップ816で当メソッド重み「0」と当ループ重み「11000」の和「11000」を当メソッド重みに設定する。次に、処理ステップ817で他にループが存在するか否かを判定し、存在しないため(N)、処理ステップ818へ進む。処理ステップ817で存在する場合(Y)は、処理ステップ806へ戻り、上記処理を繰り返す。   Next, in process step 816, the sum of the method weight “0” and the loop weight “11000” “11000” is set as the method weight. Next, it is determined in process step 817 whether or not there is another loop. Since there is no loop (N), the process proceeds to process step 818. If it exists in process step 817 (Y), the process returns to process step 806 and the above process is repeated.

次に、処理ステップ818で「JIT適用閾値テーブル」を生成する。例を図7に示す。「JIT適用閾値テーブル」は「メソッド名称」2111、「重み」2112、「JIT適用閾値」2113から構成される。ステップ818では、レコード2114を登録する。「メソッド名称」2111へは文字列「method1」、「重み」2112へは値「11000」、「JIT適用閾値」2113へは値「10」を設定する。なお、「JIT適用閾値」2113へは、「重み」2112が値「10000」以上の場合、「10」を設定し、「重み」2112が値「10000」未満、「5000」以上の場合、「20」を設定し、「重み」2112が値「5000」未満の場合、「30」を設定するものとする。   Next, a “JIT application threshold table” is generated in process step 818. An example is shown in FIG. The “JIT application threshold value table” includes “method name” 2111, “weight” 2112, and “JIT application threshold value” 2113. In step 818, the record 2114 is registered. A character string “method1” is set in “method name” 2111, a value “11000” is set in “weight” 2112, and a value “10” is set in “JIT application threshold” 2113. The “JIT application threshold” 2113 is set to “10” when the “weight” 2112 is “10000” or more, and is set to “10” when the “weight” 2112 is less than “10000” and “5000” or more. When “20” is set and “weight” 2112 is less than “5000”, “30” is set.

次に、処理ステップ819で他メソッドが存在するか否かを判定し、図5の110行目に示す「method2」が存在するため(Y)、処理ステップ804へ戻り、上記処理を繰り返す。それにより、図7の2115、2116に示すレコードが登録される。処理ステップ819で、他メソッドが存在しない場合、本静的解析処理を終了する。   Next, it is determined whether or not another method exists in processing step 819. Since “method2” shown in the 110th line in FIG. 5 exists (Y), the processing returns to processing step 804 and the above processing is repeated. Thereby, the records indicated by 2115 and 2116 in FIG. 7 are registered. If there is no other method in process step 819, the static analysis process is terminated.

図4は、図1における実行制御部4の動作フロチャートである。図4を用いて、実行制御処理の流れを説明する。まず、処理ステップ41で中間コード1を入力する。中間コード1のソースコードイメージは図5に示す通りである。次に、処理ステップ42でメソッドの検出を行い、図5の104行目に示す「method1」を検出する。次に、処理ステップ43で図7に示す「JIT適用閾値テーブル」を入力する。   FIG. 4 is an operation flowchart of the execution control unit 4 in FIG. The flow of execution control processing will be described with reference to FIG. First, the intermediate code 1 is input at processing step 41. The source code image of the intermediate code 1 is as shown in FIG. Next, a method is detected in the processing step 42, and “method1” shown in the 104th line in FIG. 5 is detected. Next, a “JIT application threshold table” shown in FIG.

次に、処理ステップ44で当メソッド「method1」の情報が「JIT適用閾値テーブル」中に登録されているか否かを判定し、登録済のため(Y)、処理ステップ48へ進む。処理ステップ48では、当メソッド「method1」のJIT適用閾値「10」2114を検出する。なお、処理ステップ44で当メソッドの情報が未登録の場合(N)、処理ステップ45へ進む。処理ステップ45では、「アクセレラレータ非対応命令重みテーブル」を入力する。次に、処理ステップ46では当メソッドの重みを算出する。次に、処理ステップ47では、JIT適用閾値の設定を行い、処理ステップ48へ進む。   Next, in processing step 44, it is determined whether or not the information of the method “method1” is registered in the “JIT application threshold value table”. Since it is already registered (Y), the processing proceeds to processing step 48. In process step 48, the JIT application threshold “10” 2114 of this method “method1” is detected. If the information of this method is not registered in process step 44 (N), the process proceeds to process step 45. In process step 45, an “accelerator non-corresponding instruction weight table” is input. Next, in processing step 46, the weight of this method is calculated. Next, in process step 47, a JIT application threshold value is set, and the process proceeds to process step 48.

次に、処理ステップ49で当メソッド「method1」の実行回数がJIT適用閾値以上か否かを判定し、閾値を超える場合(Y)は処理ステップ410へ進み、その他の場合(N)は処理ステップ411へ進む。処理ステップ410ではJIT実行を行い、処理ステップ411では、アクセレラレータを含むインタープリタによる実行を行う。処理ステップ410、411共に処理後、処理ステップ412へ進む。   Next, in process step 49, it is determined whether or not the number of executions of the method “method1” is equal to or greater than the JIT application threshold value. If it exceeds the threshold value (Y), the process proceeds to process step 410; Go to 411. In processing step 410, JIT execution is performed, and in processing step 411, execution is performed by an interpreter including an accelerator. After both processing steps 410 and 411 are processed, the process proceeds to processing step 412.

次に、処理ステップ412では動的処理を行う。動的処理では、ループの繰返し回数を求め、「アクセレラレータ非対応命令重みテーブル」の更新を行う。次に、処理ステップ413で他メソッドが存在するか否かを判定し、図5の110行目に示す「method2」が存在するため(Y)、処理ステップ42へ戻り、上記処理を繰り返す。処理ステップ413で存在しない場合(N)、本実行制御処理を終了する。   Next, in a processing step 412, dynamic processing is performed. In dynamic processing, the number of loop iterations is obtained, and the “accelerator non-corresponding instruction weight table” is updated. Next, it is determined in process step 413 whether or not there is another method. Since “method2” shown in the 110th line in FIG. 5 exists (Y), the process returns to process step 42 and the above process is repeated. If it does not exist in process step 413 (N), this execution control process is terminated.

以上説明したタスク割当処理、静的解析処理および実行制御処理によるプログラム実行方法により、例えばJIT適用閾値が「20」で固定の場合、各メソッドのコンパイル開始までの時間が、11000×20+1200×20+5000×20=344000に対し、11000×10+1200×30+5000×20=246000となり、40%高速化される。   For example, when the JIT application threshold is fixed at “20” by the program execution method by the task allocation process, the static analysis process, and the execution control process described above, the time until the compilation of each method is 11000 × 20 + 1200 × 20 + 5000 × For 20 = 344000, 11000 × 10 + 1200 × 30 + 5000 × 20 = 246000, which is 40% faster.

<プログラム実行処理装置>
図8は、図1におけるプログラム実行システムを実現するハードウェア構成の、プログラム実行処理装置の概要を示す図である。図8において、プログラム実行処理装置は、プログラム実行用のCPU1(1001)とCPU2(1002)、主記憶装置1003、二次記憶装置1004、これらを結合する結合装置1005から構成される。二次記憶装置1004には、前述した中間コード1が格納される。また、主記憶装置1003で、前述した仮想マシン2が構築される。
<Program execution processing device>
FIG. 8 is a diagram showing an outline of a program execution processing device having a hardware configuration for realizing the program execution system in FIG. In FIG. 8, the program execution processing device includes a CPU 1 (1001) and a CPU 2 (1002) for program execution, a main storage device 1003, a secondary storage device 1004, and a combining device 1005 for combining them. The secondary storage device 1004 stores the intermediate code 1 described above. Further, the virtual machine 2 described above is constructed in the main storage device 1003.

以上説明したように、本実施の形態のプログラム実行システム、さらに、プログラム実行方法によれば、中間コードを入力しプログラム部分毎の静的な「アクセレラレータ適性度合いポイント」を検出して「JIT適用判定基準情報」を出力し、次に、中間コードもしくはネイティブコードを入力してプログラム実行し、プログラム部分毎の「JIT適用判定基準情報」から「アクセレラレータ」と「JIT」の適用判定を行い、「アクセレラレータを有するインタープリタ」、もしくは「JIT」でプログラムを実行することにより、プログラムの高速化が可能となる。   As described above, according to the program execution system and the program execution method of the present embodiment, the intermediate code is input to detect the static “accelerator suitability degree point” for each program part, and the “JIT “Applicability criteria information” is output, then intermediate code or native code is input and the program is executed. From “JIT applicability criteria information” for each program part, “accelerator” and “JIT” applicability are determined. If the program is executed by “interpreter having accelerator” or “JIT”, the program can be speeded up.

また、「アクセレラレータ適性度合いポイント」に基づいた「JIT適用判定基準」の最適化により、コンパイル対象範囲を抑えてメモリ使用量を低減させることが可能となる。   Further, by optimizing the “JIT application determination criteria” based on the “accelerator suitability degree point”, it becomes possible to suppress the compilation target range and reduce the memory usage.

特に、「アクセレラレータを含むインタープリタ」と「JIT」を搭載した仮想マシンの両機能の適用判定に際し、実行するプログラム部分毎に最適化し、プログラム実行を高速化することができるとともに、コンパイル対象範囲を抑えてメモリ使用量を低減させることができる。   In particular, when deciding whether to apply both functions of a virtual machine equipped with an “interpreter including accelerator” and “JIT”, the program can be optimized for each part of the program to be executed, and the program execution speed can be increased. It is possible to reduce the memory usage by suppressing the above.

以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。   As mentioned above, the invention made by the present inventor has been specifically described based on the embodiment. However, the present invention is not limited to the embodiment, and various modifications can be made without departing from the scope of the invention. Needless to say.

例えば、前記実施の形態では、プログラム実行システム、プログラム実行方法について述べたが、これに限定されるものではなく、計算機にプログラム実行の各ステップを実行させることを特徴とするプログラムについても適用可能である。この場合には、前述した仮想マシンの実行制御部およびコンパイル/解析制御部はプログラムで実現され、このプログラムの実行により同様の処理が可能となる。   For example, in the above-described embodiment, the program execution system and the program execution method have been described. However, the present invention is not limited to this, and the present invention is also applicable to a program characterized by causing a computer to execute each step of program execution. is there. In this case, the execution control unit and the compile / analysis control unit of the virtual machine described above are realized by a program, and the same processing can be performed by executing this program.

本発明のプログラム実行方法、プログラム、およびプログラム実行システムは、「アクセレラレータ」と「JIT」を有する仮想マシンに利用可能である。   The program execution method, program, and program execution system of the present invention can be used for a virtual machine having an “accelerator” and a “JIT”.

本発明の実施の形態のプログラム実行システムの概要を示す図である。It is a figure which shows the outline | summary of the program execution system of embodiment of this invention. 本発明の実施の形態のプログラム実行システムにおいて、タスク割当処理の流れを示す図である。It is a figure which shows the flow of a task allocation process in the program execution system of embodiment of this invention. 本発明の実施の形態のプログラム実行システムにおいて、静的解析処理の流れを示す図である。It is a figure which shows the flow of a static analysis process in the program execution system of embodiment of this invention. 本発明の実施の形態のプログラム実行システムにおいて、実行制御処理の流れを示す図である。It is a figure which shows the flow of an execution control process in the program execution system of embodiment of this invention. 本発明の実施の形態のプログラム実行システムにおいて、入力ソースプログラム例を示す図である。It is a figure which shows the example of an input source program in the program execution system of embodiment of this invention. 本発明の実施の形態のプログラム実行システムにおいて、アクセレラレータ非対象命令重みテーブルを示す図である。It is a figure which shows the accelerator non-object instruction weight table in the program execution system of embodiment of this invention. 本発明の実施の形態のプログラム実行システムにおいて、JIT適用閾値テーブルを示す図である。It is a figure which shows the JIT application threshold value table in the program execution system of embodiment of this invention. 本発明の実施の形態のプログラム実行システムを実現するプログラム実行処理装置の概要を示す図である。It is a figure which shows the outline | summary of the program execution processing apparatus which implement | achieves the program execution system of embodiment of this invention.

符号の説明Explanation of symbols

1…中間コード、2…仮想マシン、3…タスク割当部、4…実行制御部、5…アクセレラレータ/コンパイラ判定部、6…実行部、7…コンパイル/解析制御部、8…静的解析部、9…コンパイル部、21…アクセレラレータ/コンパイラ判定情報、22…ネイティブコード、61…動的解析部、62…インタープリタ部、63…コンパイラ部、
1001…CPU1、1002…CPU2、1003…主記憶装置、1004…二次記憶装置、1005…結合装置。
DESCRIPTION OF SYMBOLS 1 ... Intermediate code, 2 ... Virtual machine, 3 ... Task allocation part, 4 ... Execution control part, 5 ... Accelerator / compiler determination part, 6 ... Execution part, 7 ... Compile / analysis control part, 8 ... Static analysis 9 compile unit 21 Accelerator / compiler determination information 22 Native code 61 Dynamic analysis unit 62 Interpreter unit 63 Compiler unit
1001 ... CPU1, 1002 ... CPU2, 1003 ... Main storage device, 1004 ... Secondary storage device, 1005 ... Coupling device.

Claims (10)

計算機により、
ソースプログラムから変換された中間コードを入力し、プログラム部分毎の「アクセレラレータ適性度合いポイント」を決定するステップと、
前記「アクセレラレータ適性度合いポイント」に基づき「JIT適用判定基準情報」を決定するステップと、
前記「JIT適用判定基準情報」に基づき「アクセレラレータを有するインタープリタ」と「JIT」の適用判定を行うステップと、
前記適用判定の結果に基づき前記「アクセレラレータを有するインタープリタ」による実行と前記「JIT」による実行を切り分けてプログラムを実行するステップと、
を実行することを特徴とするプログラム実行方法。
Depending on the calculator
Inputting intermediate code converted from the source program and determining "accelerator suitability degree point" for each program part;
Determining “JIT application criteria information” based on the “accelerator suitability degree point”;
Determining whether to apply “interpreter having accelerator” and “JIT” based on the “JIT application determination criterion information”;
Executing the program by separating the execution by the “interpreter having an accelerator” from the execution by the “JIT” based on the result of the application determination;
The program execution method characterized by performing.
請求項1記載のプログラム実行方法において、
前記プログラム部分毎の「アクセレラレータ適性度合いポイント」を決定するステップでは、「ループ繰返し回数」の動的な情報を検出するステップと、この動的な情報に基づき更に正確なプログラム部分毎の「アクセレラレータ適性度合いポイント」を決定するステップと、を実行することを特徴とするプログラム実行方法。
The program execution method according to claim 1,
In the step of determining the “accelerator suitability degree point” for each program part, the step of detecting the dynamic information of the “number of loop iterations” and the more accurate “ A step of determining an “accelerator suitability degree point”.
請求項1記載のプログラム実行方法において、
前記プログラム部分毎の「アクセレラレータ適性度合いポイント」を決定するステップでは、予めベンチマークプログラムを実行し、「アクセレラレータ非対応命令」の実行時間の平均値を検出するステップと、各「アクセレラレータ非対応命令」の実行時間の平均値をポイント化して「アクセレラレータ非対応命令重み」とするステップと、各プログラム部分毎に含まれる「アクセレラレータ非対応命令重み」の合計を当該プログラム部分の「アクセレラレータ適性度合いポイント」として決定するステップと、を実行することを特徴とするプログラム実行方法。
The program execution method according to claim 1,
In the step of determining the “accelerator suitability degree point” for each program part, a benchmark program is executed in advance, an average value of execution times of “accelerator non-corresponding instructions” is detected, and each “accelerator The average value of the execution time of the “non-accelerator instruction” is pointed to “accelerator non-instruction weight” and the total of “accelerator non-instruction weight” included in each program part Determining the “accelerator suitability degree point” of the part, and executing the program.
請求項1記載のプログラム実行方法において、
前記「アクセレラレータ」は、前記中間コードの翻訳、実行をハードウェアで実施するものであり、前記「JIT」は、前記中間コードの繰返し実行される部分を、実行時に実行回数が閾値を超えた時点でコンパイルし、以降ネイティブコードを実行するものであることを特徴とするプログラム実行方法。
The program execution method according to claim 1,
The “accelerator” performs the translation and execution of the intermediate code by hardware, and the “JIT” executes the portion of the intermediate code that is repeatedly executed, and the number of executions exceeds the threshold at the time of execution. A program execution method characterized in that the program is compiled at a point in time and the native code is subsequently executed.
計算機に、
ソースプログラムから変換された中間コードを入力し、プログラム部分毎の「アクセレラレータ適性度合いポイント」を決定するステップと、
前記「アクセレラレータ適性度合いポイント」に基づき「JIT適用判定基準情報」を決定するステップと、
前記「JIT適用判定基準情報」に基づき「アクセレラレータを有するインタープリタ」と「JIT」の適用判定を行うステップと、
前記適用判定の結果に基づき前記「アクセレラレータを有するインタープリタ」による実行と前記「JIT」による実行を切り分けてプログラムを実行するステップと、
を実行させることを特徴とするプログラム。
In the calculator,
Inputting intermediate code converted from the source program and determining "accelerator suitability degree point" for each program part;
Determining “JIT application criteria information” based on the “accelerator suitability degree point”;
Determining whether to apply “interpreter having accelerator” and “JIT” based on the “JIT application determination criterion information”;
Executing the program by separating the execution by the “interpreter having an accelerator” from the execution by the “JIT” based on the result of the application determination;
A program characterized by having executed.
請求項5記載のプログラムにおいて、
前記プログラム部分毎の「アクセレラレータ適性度合いポイント」を決定するステップでは、「ループ繰返し回数」の動的な情報を検出するステップと、この動的な情報に基づき更に正確なプログラム部分毎の「アクセレラレータ適性度合いポイント」を決定するステップと、を実行させることを特徴とするプログラム。
The program according to claim 5,
In the step of determining the “accelerator suitability degree point” for each program part, the step of detecting the dynamic information of the “number of loop iterations” and the more accurate “ And a step of determining an “accelerator suitability degree point”.
請求項5記載のプログラムにおいて、
前記プログラム部分毎の「アクセレラレータ適性度合いポイント」を決定するステップでは、予めベンチマークプログラムを実行し、「アクセレラレータ非対応命令」の実行時間の平均値を検出するステップと、各「アクセレラレータ非対応命令」の実行時間の平均値をポイント化して「アクセレラレータ非対応命令重み」とするステップと、各プログラム部分毎に含まれる「アクセレラレータ非対応命令重み」の合計を当該プログラム部分の「アクセレラレータ適性度合いポイント」として決定するステップと、を実行させることを特徴とするプログラム。
The program according to claim 5,
In the step of determining the “accelerator suitability degree point” for each program part, a benchmark program is executed in advance, an average value of execution times of “accelerator non-corresponding instructions” is detected, and each “accelerator The average value of the execution time of the “non-accelerator instruction” is pointed to “accelerator non-instruction weight” and the total of “accelerator non-instruction weight” included in each program part And determining the “accelerator suitability degree point” of the part.
計算機により、
ソースプログラムから変換された中間コードを入力し、プログラム部分毎の「アクセレラレータ適性度合いポイント」を決定する手段と、
前記「アクセレラレータ適性度合いポイント」に基づき「JIT適用判定基準情報」を決定する手段と、
前記「JIT適用判定基準情報」に基づき「アクセレラレータを有するインタープリタ」と「JIT」の適用判定を行う手段と、
前記適用判定の結果に基づき前記「アクセレラレータを有するインタープリタ」による実行と前記「JIT」による実行を切り分けてプログラムを実行する手段と、
を実現することを特徴とするプログラム実行システム。
Depending on the calculator
Means for inputting intermediate code converted from the source program and determining "accelerator suitability degree point" for each program part;
Means for determining “JIT application criteria information” based on the “accelerator suitability degree point”;
Means for determining application of “interpreter having accelerator” and “JIT” based on the “JIT application determination criterion information”;
Means for executing a program by separating execution by the “interpreter having an accelerator” from execution based on the result of the application determination and execution by the “JIT”;
A program execution system characterized by realizing the above.
請求項8記載のプログラム実行システムにおいて、
前記プログラム部分毎の「アクセレラレータ適性度合いポイント」を決定する手段では、「ループ繰返し回数」の動的な情報を検出する手段と、この動的な情報に基づき更に正確なプログラム部分毎の「アクセレラレータ適性度合いポイント」を決定する手段と、を実現することを特徴とするプログラム実行システム。
The program execution system according to claim 8, wherein
The means for determining the “accelerator suitability degree point” for each program part includes means for detecting dynamic information of the “number of loop iterations”, and more accurate “for each program part based on the dynamic information. Means for determining an “accelerator suitability degree point”, and a program execution system.
請求項8記載のプログラム実行システムにおいて、
前記プログラム部分毎の「アクセレラレータ適性度合いポイント」を決定する手段では、予めベンチマークプログラムを実行し、「アクセレラレータ非対応命令」の実行時間の平均値を検出する手段と、各「アクセレラレータ非対応命令」の実行時間の平均値をポイント化して「アクセレラレータ非対応命令重み」とする手段と、各プログラム部分毎に含まれる「アクセレラレータ非対応命令重み」の合計を当該プログラム部分の「アクセレラレータ適性度合いポイント」として決定する手段と、を実現することを特徴とするプログラム実行システム。
The program execution system according to claim 8, wherein
In the means for determining the “accelerator suitability degree point” for each program part, a benchmark program is executed in advance and an average value of execution times of “accelerator non-corresponding instructions” is detected. The average value of the execution time of the “non-accelerator instruction” is pointed to “accelerator-incompatible instruction weight” and the total of the “accelerator non-instruction weight” included in each program part And a means for determining the “accelerator suitability degree point” of the part.
JP2007168489A 2007-06-27 2007-06-27 Program execution method, program, and program execution system Pending JP2009009253A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007168489A JP2009009253A (en) 2007-06-27 2007-06-27 Program execution method, program, and program execution system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007168489A JP2009009253A (en) 2007-06-27 2007-06-27 Program execution method, program, and program execution system

Publications (1)

Publication Number Publication Date
JP2009009253A true JP2009009253A (en) 2009-01-15

Family

ID=40324291

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007168489A Pending JP2009009253A (en) 2007-06-27 2007-06-27 Program execution method, program, and program execution system

Country Status (1)

Country Link
JP (1) JP2009009253A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010109751A1 (en) * 2009-03-25 2010-09-30 日本電気株式会社 Compiling system, compiling method, and storage medium containing compiling program
JP2013105464A (en) * 2011-11-16 2013-05-30 Fujitsu Ltd Application server
KR101361838B1 (en) * 2010-12-09 2014-02-11 한국전자통신연구원 Method for accelerating virtual desktop protocol based on server virtualization and virtualization server for performing the same
KR20220080000A (en) * 2016-08-01 2022-06-14 페이스북 테크놀로지스, 엘엘씨 Adaptive parameters in image regions based on eye tracking information

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010109751A1 (en) * 2009-03-25 2010-09-30 日本電気株式会社 Compiling system, compiling method, and storage medium containing compiling program
JP5278538B2 (en) * 2009-03-25 2013-09-04 日本電気株式会社 Compilation system, compilation method, and compilation program
KR101361838B1 (en) * 2010-12-09 2014-02-11 한국전자통신연구원 Method for accelerating virtual desktop protocol based on server virtualization and virtualization server for performing the same
JP2013105464A (en) * 2011-11-16 2013-05-30 Fujitsu Ltd Application server
US9389889B2 (en) 2011-11-16 2016-07-12 Fujitsu Limited Application server for optimizing timing of performing dynamic compilation
KR20220080000A (en) * 2016-08-01 2022-06-14 페이스북 테크놀로지스, 엘엘씨 Adaptive parameters in image regions based on eye tracking information
KR102543341B1 (en) 2016-08-01 2023-06-16 메타 플랫폼즈 테크놀로지스, 엘엘씨 Adaptive parameters in image regions based on eye tracking information

Similar Documents

Publication Publication Date Title
US10324741B2 (en) Speeding up dynamic language execution on a virtual machine with type speculation
US7725883B1 (en) Program interpreter
US8522222B2 (en) Tracing just-in-time compilation with pointers to local variables
EP2281236B1 (en) Just-ahead-of-time compilation
US6233733B1 (en) Method for generating a Java bytecode data flow graph
US8689198B2 (en) Compiling system and method for optimizing binary code
JP2015084251A (en) Software application performance enhancement
JP2013533533A (en) Workload distribution and parallelization within a computing platform
US8869128B2 (en) Compiling method, program, and information processing apparatus
JPH1097430A (en) Method and system for inserting assembly code routine into source code routine for optimization
JP2000222220A (en) Dynamically compiling time setting method, byte code executing mode selecting method and computer
US20170139693A1 (en) Code execution method and device
US8056061B2 (en) Data processing device and method using predesignated register
KR20120083803A (en) Extra code generating apparatus and method for virtual machine
US20130311980A1 (en) Selective compiling method, device, and corresponding computer program product
KR20170024898A (en) Scheme for dynamic controlling of processing device based on application characteristics
JP2009009253A (en) Program execution method, program, and program execution system
CN108536514B (en) Hot spot method identification method and device
JP2007334643A (en) Program execution method, program, and program execution system
US9141414B2 (en) Preferred compilation
Park et al. Concurrent JavaScript parsing for faster loading of Web apps
Dooley et al. Detecting and using critical paths at runtime in message driven parallel programs
CN106325963B (en) Self-adaptive dynamic compiling and scheduling method and device
WO2019136014A1 (en) Reduced instructions to generate global variable addresses
EP3134815B1 (en) Memory efficient thread-level speculation

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Effective date: 20100528

Free format text: JAPANESE INTERMEDIATE CODE: A712