JP6555981B2 - 情報処理装置及びその制御方法 - Google Patents
情報処理装置及びその制御方法 Download PDFInfo
- Publication number
- JP6555981B2 JP6555981B2 JP2015165150A JP2015165150A JP6555981B2 JP 6555981 B2 JP6555981 B2 JP 6555981B2 JP 2015165150 A JP2015165150 A JP 2015165150A JP 2015165150 A JP2015165150 A JP 2015165150A JP 6555981 B2 JP6555981 B2 JP 6555981B2
- Authority
- JP
- Japan
- Prior art keywords
- application
- function
- native code
- compilation
- cache memory
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- 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
- G06F9/4552—Involving translation to a different instruction set architecture, e.g. just-in-time translation in a JVM
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)
Description
アプリケーションを実行する仮想マシンとして機能する情報処理装置であって、
前記アプリケーションから要求された関数に対応するネイティブコードがキャッシュメモリに格納されている場合、当該ネイティブコードを実行し、前記キャッシュメモリに格納されていない場合、前記アプリケーションから要求された関数をインタプリタ形式に実行する実行手段と、
前記アプリケーションからのコンパイル要求を受信した場合、要求された関数のコンパイルを行い、生成されたネイティブコードを前記キャッシュメモリに登録する動的コンパイル手段と、
前記アプリケーションから、関数の終了の要求を受信した場合、要求されたネイティブコードを前記キャッシュメモリより消去、もしくはキャッシュメモリへの維持する優先度をより低く設定する設定手段とを有する。
図1は本実施形態における情報処理装置1000のハードウェア構成を示す図である。中央演算処理装置(以下、CPU)1001は演算処理部であり、装置全体の動作制御のための各種処理を実行する。ネイティブコードの生成やアプリケーションの実行もここで行う。
第2の実施形態では、上記第1の実施形態でJITコンパイルする際に、インライン展開の深さの設定を変えて、より高速動作が可能なネイティブコードを生成する例を説明する。
本第3の実施形態は、アプリケーションが関数を使用する時刻が予想できる場合に、JITコンパイルの開始時刻を指定する例である。まずアプリケーションが関数を使用する時刻を予想できるユースケースの例を挙げる。
本第4の実施形態では、アプリケーション100の種類に応じて生成済みのネイティブコードのキャッシュ優先度を変更する例を説明する。
本第5の実施形態は、アプリケーション指示受付部301が複数のアプリケーションから短時間に大量のJITコンパイル指示を受けた場合のコンパイル順番の調整に関して説明する。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
Claims (8)
- アプリケーションを実行する仮想マシンとして機能する情報処理装置であって、
前記アプリケーションから要求された関数に対応するネイティブコードがキャッシュメモリに格納されている場合、当該ネイティブコードを実行し、前記キャッシュメモリに格納されていない場合、前記アプリケーションから要求された関数をインタプリタ形式に実行する実行手段と、
前記アプリケーションからのコンパイル要求を受信した場合、要求された関数のコンパイルを行い、生成されたネイティブコードを前記キャッシュメモリに登録する動的コンパイル手段と、
前記アプリケーションから、関数の終了の要求を受信した場合、要求されたネイティブコードを前記キャッシュメモリより消去、もしくはキャッシュメモリへの維持する優先度をより低く設定する設定手段と、
を有することを特徴とする情報処理装置。 - 前記動的コンパイル手段は、
前記アプリケーションから、前記関数を利用するタイミングまでの時間的余裕が少なくとも2段階のいずれであるかを示す情報を受信した場合、時間的余裕が大きいほど実行速度優先のネイティブコードを生成するためのパラメータを設定してコンパイルを行う
ことを特徴とする請求項1に記載の情報処理装置。 - 前記動的コンパイル手段は、
前記アプリケーションから、前記関数を利用する時刻が設定された場合、当該時刻にてネイティブコードの生成が完了するためのコンパイル開始時刻を決定し、当該決定した時刻になったときにコンパイルを行う
ことを特徴とする請求項1に記載の情報処理装置。 - アプリケーションの種類と優先度とを対応関係を示すテーブルを記憶する記憶手段を更に有し、
前記動的コンパイル手段は、前記テーブルを参照し、関数のコンパイル要求したアプリケーションの種類に応じた優先度に対応するキャッシュメモリの位置に、生成したネイティブコードを格納することを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。 - アプリケーションの種類と優先度とを対応関係を示すテーブルを記憶する記憶手段を更に有し、
前記動的コンパイル手段は、複数のアプリケーションからのコンパイル要求を受信した場合、優先度の高いアプリケーションからのコンパイル要求を優先することを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。 - アプリケーションを実行する仮想マシンとして機能する情報処理装置の制御方法であって、
実行手段が、前記アプリケーションから要求された関数に対応するネイティブコードがキャッシュメモリに格納されている場合、当該ネイティブコードを実行し、前記キャッシュメモリに格納されていない場合、前記アプリケーションから要求された関数をインタプリタ形式に実行する実行工程と、
動的コンパイル手段が、前記アプリケーションからのコンパイル要求を受信した場合、要求された関数のコンパイルを行い、生成されたネイティブコードを前記キャッシュメモリに登録する動的コンパイル工程と、
設定手段が、前記アプリケーションから、関数の終了の要求を受信した場合、要求されたネイティブコードを前記キャッシュメモリより消去、もしくはキャッシュメモリへの維持する優先度をより低く設定する設定工程と、
を有することを特徴とする情報処理装置の制御方法。 - コンピュータが読み込み実行することで、前記コンピュータを、請求項1乃至5のいずれか1項に記載の情報処理装置が有する各手段として機能させるためのプログラム。
- 請求項7に記載のプログラムを格納したコンピュータが読み込み可能な記憶媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015165150A JP6555981B2 (ja) | 2015-08-24 | 2015-08-24 | 情報処理装置及びその制御方法 |
US15/238,272 US9971614B2 (en) | 2015-08-24 | 2016-08-16 | Information processing apparatus and method of controlling the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015165150A JP6555981B2 (ja) | 2015-08-24 | 2015-08-24 | 情報処理装置及びその制御方法 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2017045144A JP2017045144A (ja) | 2017-03-02 |
JP2017045144A5 JP2017045144A5 (ja) | 2018-09-20 |
JP6555981B2 true JP6555981B2 (ja) | 2019-08-07 |
Family
ID=58095514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015165150A Expired - Fee Related JP6555981B2 (ja) | 2015-08-24 | 2015-08-24 | 情報処理装置及びその制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9971614B2 (ja) |
JP (1) | JP6555981B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10795989B2 (en) * | 2017-03-05 | 2020-10-06 | Fortinet, Inc. | Secure just-in-time (JIT) code generation |
US11053395B2 (en) | 2017-06-12 | 2021-07-06 | Altria Client Services Llc | Corrosion-resistant reservoir for an e-vaping device and method of manufacturing thereof |
US11768777B2 (en) * | 2020-01-22 | 2023-09-26 | EMC IP Holding Company LLC | Application aware cache management |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7013456B1 (en) * | 1999-01-28 | 2006-03-14 | Ati International Srl | Profiling execution of computer programs |
JP3470948B2 (ja) * | 1999-01-28 | 2003-11-25 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 動的コンパイル時期決定方法、バイトコード実行モード選択方法、及びコンピュータ |
US6973646B1 (en) * | 2000-07-21 | 2005-12-06 | International Business Machines Corporation | Method for compiling program components in a mixed static and dynamic environment |
US6718539B1 (en) * | 2000-12-22 | 2004-04-06 | Lsi Logic Corporation | Interrupt handling mechanism in translator from one instruction set to another |
GB2376099B (en) * | 2001-05-31 | 2005-11-16 | Advanced Risc Mach Ltd | Program instruction interpretation |
US7617490B2 (en) * | 2003-09-10 | 2009-11-10 | Intel Corporation | Methods and apparatus for dynamic best fit compilation of mixed mode instructions |
US7788657B2 (en) * | 2004-02-27 | 2010-08-31 | Tvworks, Llc | Targeted runtime compilation |
US7853934B2 (en) * | 2005-06-23 | 2010-12-14 | Hewlett-Packard Development Company, L.P. | Hot-swapping a dynamic code generator |
JP5167589B2 (ja) | 2006-02-13 | 2013-03-21 | 富士通株式会社 | アプリケーションサーバ装置および仮想マシンプログラム |
US8769511B2 (en) * | 2006-02-16 | 2014-07-01 | The Regents Of The University Of California | Dynamic incremental compiler and method |
US7784041B2 (en) * | 2006-03-30 | 2010-08-24 | Oracle America, Inc. | Mechanism for reducing detectable pauses in dynamic output caused by dynamic compilation |
US8082542B2 (en) * | 2006-10-04 | 2011-12-20 | International Business Machines Corporation | Load time in-lining of subroutines |
US8522209B2 (en) * | 2007-03-30 | 2013-08-27 | Sap Ag | Method and system for integrating profiling and debugging |
US8875114B2 (en) * | 2007-09-21 | 2014-10-28 | International Business Machines Corporation | Employing identifiers provided by an operating system of a processing environment to optimize the processing environment |
US8539464B2 (en) * | 2008-10-30 | 2013-09-17 | International Business Machines Corporation | Distributed just-in-time compilation |
US8938728B2 (en) * | 2010-04-05 | 2015-01-20 | International Business Machines Corporation | Dynamic compiler program, dynamic compiling method and dynamic compiling device |
US8516460B2 (en) * | 2011-08-02 | 2013-08-20 | International Business Machines Corporation | Real-time temperature sensitive machine level code compilation and execution |
US8819649B2 (en) * | 2011-09-09 | 2014-08-26 | Microsoft Corporation | Profile guided just-in-time (JIT) compiler and byte code generation |
-
2015
- 2015-08-24 JP JP2015165150A patent/JP6555981B2/ja not_active Expired - Fee Related
-
2016
- 2016-08-16 US US15/238,272 patent/US9971614B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017045144A (ja) | 2017-03-02 |
US9971614B2 (en) | 2018-05-15 |
US20170060554A1 (en) | 2017-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5167589B2 (ja) | アプリケーションサーバ装置および仮想マシンプログラム | |
US9473558B2 (en) | Utilization of target browsers | |
TWI400652B (zh) | Dual operating system parallel processing methods, recording media and computer program products | |
US20120324454A1 (en) | Control Flow Graph Driven Operating System | |
US20140026142A1 (en) | Process Scheduling to Maximize Input Throughput | |
US20120304177A1 (en) | Programmatically determining an execution mode for a request dispatch utilizing historic metrics | |
JP2021114283A (ja) | ロボティックプロセスオートメーション(rpa)のためのトリガサービス管理 | |
US10789111B2 (en) | Message oriented middleware with integrated rules engine | |
JP6555981B2 (ja) | 情報処理装置及びその制御方法 | |
US20120290681A1 (en) | Application downloading | |
US20170364382A1 (en) | Method and apparatus for hot upgrading a virtual machine management service module | |
KR101605507B1 (ko) | 매크로 수행 방법 및 매크로를 수행하기 위한 웹 서버의 제어방법, 이를 수행하기 위한 기록매체 | |
US9830307B1 (en) | Ahead of time compilation of content pages | |
KR20130051076A (ko) | 응용프로그램 스케줄링 방법 및 장치 | |
US9785560B2 (en) | Scene-isolated internet application | |
WO2013165460A1 (en) | Control flow graph driven operating system | |
JP2016051395A (ja) | 画像形成装置およびリソース管理方法 | |
JP2008305021A (ja) | 情報処理装置及びアプリケーション管理方法 | |
JP5056346B2 (ja) | 情報処理装置、情報処理システム、仮想サーバの移動処理の制御方法、及び、プログラム | |
CN111427654A (zh) | 一种指令处理方法及装置 | |
US20140282533A1 (en) | Virtual computer system | |
JP4962026B2 (ja) | プロセス管理機能をもつユーザレベルプロセス制御装置、その方法及びそのプログラム | |
KR20200084294A (ko) | 핫스팟 추출을 이용하여 코드 블록을 탐색하는 운용 서버 및 이를 포함하는 운용 플랫폼 시스템 | |
JP2017157136A (ja) | ジョブ管理システム、プログラム実行装置の決定方法及びプログラム | |
JP2019152911A (ja) | 情報処理装置、情報処理方法およびコンピュータプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180810 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180810 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190522 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20190610 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190709 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6555981 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |