JP2011013985A - プログラム、装置、および方法 - Google Patents
プログラム、装置、および方法 Download PDFInfo
- Publication number
- JP2011013985A JP2011013985A JP2009158204A JP2009158204A JP2011013985A JP 2011013985 A JP2011013985 A JP 2011013985A JP 2009158204 A JP2009158204 A JP 2009158204A JP 2009158204 A JP2009158204 A JP 2009158204A JP 2011013985 A JP2011013985 A JP 2011013985A
- Authority
- JP
- Japan
- Prior art keywords
- writing
- write
- code
- target program
- optimized
- 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
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
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
Abstract
【解決手段】対象プログラムを実行させるための装置であって、オブジェクトの値およびオブジェクトの管理情報を対応付けて記憶する記憶部と、対象プログラムから、オブジェクトの値が不変であることを条件として最適化した最適化コードと、オブジェクトの値が変更された場合に実行される非最適化コードとを生成するコード生成部と、対象プログラムを最適化コードにより実行させている場合において、オブジェクトに対する値の書き込みが発生したことに応じて、対象プログラムの実行を、最適化コードによる実行から非最適化コードによる実行に切り替える切替部と、オブジェクトに対する書き込みの発生を検出しない非検出書込処理により管理情報をアクセスしてオブジェクトを管理する管理部と、を備える装置を提供する。
【選択図】図1
Description
Claims (15)
- コンピュータにより対象プログラムを実行させるためのプログラムであって、
当該プログラムは、前記コンピュータを、
オブジェクトの値およびオブジェクトの管理情報を対応付けて記憶する記憶部と、
前記対象プログラムから、前記オブジェクトの値が不変であることを条件として最適化した最適化コードと、前記オブジェクトの値が変更された場合に実行される非最適化コードとを生成するコード生成部と、
前記対象プログラムを前記最適化コードにより実行させている場合において、前記オブジェクトに対する値の書き込みが発生したことに応じて、前記対象プログラムの実行を、前記最適化コードによる実行から前記非最適化コードによる実行に切り替える切替部と、
前記オブジェクトに対する書き込みの発生を検出しない非検出書込処理により前記管理情報をアクセスして前記オブジェクトを管理する管理部と、
して機能させるプログラム。 - 前記切替部は、前記対象プログラムを前記非最適化コードによる実行から前記最適化コードによる実行に切り替える場合に、前記オブジェクトの値に対する書き込みの発生を検出可能に設定する請求項1に記載のプログラム。
- 前記切替部は、前記対象プログラムを前記最適化コードにより実行させる場合に、前記オブジェクトを、前記記憶部内において、特権書込命令による書き込みの発生を検出せず、非特権書込命令による書き込みの発生を検出する非特権書込禁止領域に配置し、
前記コード生成部は、前記対象プログラムによる前記オブジェクトの値への書き込みを前記非特権書込命令に変換し、
前記管理部は、前記オブジェクトの管理情報に対する書き込みを前記特権書込命令により処理する
請求項1または2に記載のプログラム。 - 前記切替部は、前記対象プログラムを前記非最適化コードにより実行させる場合に、前記オブジェクトを、前記記憶部内において、前記特権書込命令および前記非特権書込命令による書込の発生を検出しない書込許可領域に配置する請求項3に記載のプログラム。
- 前記記憶部は、前記オブジェクトの管理情報の少なくとも一部として、前記対象プログラムから前記オブジェクトの値への書き込みが制限されているか否かを示す書込制限情報を記憶し、
前記管理部は、前記対象プログラムから前記オブジェクトの値への書き込みが制限されている旨の前記書込制限情報が記憶されている場合に前記対象プログラムを前記最適化コードにより実行させ、前記対象プログラムから前記オブジェクトの値への書き込みが制限されていない旨の前記書込制限情報が記憶されている場合に前記対象プログラムを前記非最適化コードにより実行させ、
前記切替部は、前記対象プログラムを前記非最適化コードにより実行させる場合に前記対象プログラムから前記オブジェクトの値への書き込みが制限されていない旨の前記書込制限情報を前記オブジェクトの管理情報内に書き込み、前記対象プログラムを前記最適化コードにより実行させる場合に前記対象プログラムから前記オブジェクトの値への書き込みが制限されている旨の前記書込制限情報を前記オブジェクトの管理情報内に書き込む、
請求項4に記載のプログラム。 - 前記記憶部は、前記オブジェクトの管理情報の一部として、前記オブジェクトを最適化対象とするか否かを示す最適化情報を記憶し、
前記コード生成部は、前記オブジェクトの値が不変であることを条件として最適化する場合に、前記オブジェクトを最適化対象とする旨を示す最適化情報を前記オブジェクトに対して設定し、
前記切替部は、前記オブジェクトに対応付けて前記オブジェクトを最適化対象とする旨を示す前記最適化情報が記憶されている場合に、前記対象プログラムを前記最適化コードによる実行に切り替える
請求項5に記載のプログラム。 - 前記切替部は、前記記憶部に記憶された複数の前記オブジェクトのそれぞれを検査して前記対象プログラムにより使用されていない前記オブジェクトを前記記憶部内から解放するガベージ・コレクション中において、検査対象である前記書込許可領域の前記オブジェクトに対応付けて前記オブジェクトを最適化する旨を示す前記最適化情報が記憶されている場合に、前記オブジェクトを前記非特権書込禁止領域に移動させる請求項6に記載のプログラム。
- 前記切替部は、前記非特権書込禁止領域に配置した前記オブジェクトに対する書き込みが発生したことに応じて、当該オブジェクトに対して、前記オブジェクトの値への書き込みが制限されていない旨を示す前記書込制限情報および当該オブジェクトを最適化対象としない旨を示す前記最適化情報を設定する請求項7に記載のプログラム。
- 前記切替部は、前記ガベージ・コレクション中において、検査対象である前記非特権書込禁止領域の前記オブジェクトに対応付けて、前記オブジェクトを最適化しない旨を示す前記最適化情報が記憶されている場合に、前記オブジェクトを前記書込許可領域に移動させる請求項8に記載のプログラム。
- 前記切替部は、前記対象プログラムを前記最適化コードにより実行させる場合に、前記オブジェクトを、仮想メモリ空間上における書き込みを禁止する書込禁止仮想領域および書き込みを許可する書込許可仮想領域の両方にマッピングされた物理メモリ領域に配置し、
前記コード生成部は、前記対象プログラムによる前記オブジェクトの値への書き込みを前記書込禁止仮想領域を介して処理させるコードを生成し、
前記管理部は、前記オブジェクトの管理情報への書き込みを前記書込許可仮想領域を介して処理する
請求項1または2に記載のプログラム。 - 前記切替部は、前記対象プログラムを前記非最適化コードにより実行させる場合に、前記オブジェクトを、前記記憶部内において、前記書込許可仮想領域にマッピングされた物理メモリ領域に移動させる請求項10に記載のプログラム。
- 前記切替部は、最適化対象となる複数の前記オブジェクトのそれぞれが記憶される前記書込禁止仮想領域内のアドレス位置および前記書込許可仮想領域内のアドレス位置を、前記仮想メモリ空間上において予め設定されたオフセット分ずらして配置し、
前記管理部は、前記オブジェクトの前記書込禁止仮想領域内のアドレス位置および前記オフセットから前記書込許可仮想領域内のアドレス位置を算出して、算出したアドレス位置を用いて前記オブジェクトの管理情報を書き込む
請求項10または11に記載のプログラム。 - 前記書込禁止仮想領域を介した前記オブジェクトに対する書き込みが検出されたことに応じて、当該書き込みを前記書込許可仮想領域を介して実行する書込処理部を更に備え、
前記管理部は、前記オブジェクトの管理情報への書込頻度が予め設定された基準頻度未満の場合に前記書込禁止仮想領域を介して前記オブジェクトの管理情報へ書き込み、前記書込頻度が前記基準頻度以上の場合においては前記オブジェクトが前記書込禁止仮想領域および前記書込許可仮想領域にマッピングされた物理メモリ領域に配置されていることを条件として前記書込許可仮想領域を介して前記オブジェクトの管理情報へ書き込む
請求項12に記載のプログラム。 - 対象プログラムを実行させるための装置であって、
オブジェクトの値およびオブジェクトの管理情報を対応付けて記憶する記憶部と、
前記対象プログラムから、前記オブジェクトの値が不変であることを条件として最適化した最適化コードと、前記オブジェクトの値が変更された場合に実行される非最適化コードとを生成するコード生成部と、
前記対象プログラムを前記最適化コードにより実行させている場合において、前記オブジェクトに対する値の書き込みが発生したことに応じて、前記対象プログラムの実行を、前記最適化コードによる実行から前記非最適化コードによる実行に切り替える切替部と、
前記オブジェクトに対する書き込みの発生を検出しない非検出書込処理により前記管理情報をアクセスして前記オブジェクトを管理する管理部と、
を備える装置。 - 対象プログラムを実行させるための方法であって、
オブジェクトの値およびオブジェクトの管理情報を対応付けて記憶部によって記憶する段階と、
前記対象プログラムから、前記オブジェクトの値が不変であることを条件として最適化した最適化コードと、前記オブジェクトの値が変更された場合に実行される非最適化コードとを、コード生成部によって生成する段階と、
前記対象プログラムを前記最適化コードにより実行させている場合において、前記オブジェクトに対する値の書き込みが発生したことに応じて、前記対象プログラムの実行を、前記最適化コードによる実行から前記非最適化コードによる実行に切替部によって切り替える段階と、
前記オブジェクトに対する書き込みの発生を検出しない非検出書込処理により前記管理情報をアクセスして前記オブジェクトを管理部によって管理する段階と、
を備える方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009158204A JP2011013985A (ja) | 2009-07-02 | 2009-07-02 | プログラム、装置、および方法 |
US12/826,820 US8336039B2 (en) | 2009-07-02 | 2010-06-30 | Program, apparatus, and method of optimizing a Java object |
US13/671,958 US8479182B2 (en) | 2009-07-02 | 2012-11-08 | Program, apparatus, and method of optimizing a java object |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009158204A JP2011013985A (ja) | 2009-07-02 | 2009-07-02 | プログラム、装置、および方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011013985A true JP2011013985A (ja) | 2011-01-20 |
Family
ID=43413306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009158204A Pending JP2011013985A (ja) | 2009-07-02 | 2009-07-02 | プログラム、装置、および方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US8336039B2 (ja) |
JP (1) | JP2011013985A (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5204300B2 (ja) * | 2009-04-28 | 2013-06-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチスレッド上で動作するプログラムのプログラム・コードをロック衝突が少ないプログラム・コードに変換するための方法、並びにそのコンピュータ・プログラム及びコンピュータ・システム |
US9021421B1 (en) * | 2012-05-07 | 2015-04-28 | Google Inc. | Read and write barriers for flexible and efficient garbage collection |
US9384019B2 (en) * | 2014-03-25 | 2016-07-05 | International Business Machines Corporation | Dynamic code injection |
US9858058B2 (en) * | 2014-03-31 | 2018-01-02 | International Business Machines Corporation | Partition mobility for partitions with extended code |
CN108198124B (zh) * | 2017-12-27 | 2023-04-25 | 上海联影医疗科技股份有限公司 | 医学图像处理方法、装置、计算机设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0736709A (ja) * | 1993-07-20 | 1995-02-07 | Nec Corp | 手続き呼び出し方式 |
JP2000222219A (ja) * | 1999-01-27 | 2000-08-11 | Internatl Business Mach Corp <Ibm> | 多次元配列オブジェクトの処理方法及び装置 |
JP2003216442A (ja) * | 2002-01-17 | 2003-07-31 | Internatl Business Mach Corp <Ibm> | プログラム変換方法、これを用いたコンピュータ装置及びプログラム |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5987256A (en) * | 1997-09-03 | 1999-11-16 | Enreach Technology, Inc. | System and process for object rendering on thin client platforms |
CA2262316A1 (en) * | 1999-02-22 | 2000-08-22 | Ibm Canada Limited-Ibm Canada Limitee | System and method for detecting release-to-release binary compatibility in compiled object code |
AU2001234758A1 (en) * | 2000-02-04 | 2001-08-14 | America Online Incorporated | High performance "freeze-dried" dynamic web page generation |
US7516446B2 (en) * | 2002-06-25 | 2009-04-07 | International Business Machines Corporation | Method and apparatus for efficient and precise datarace detection for multithreaded object-oriented programs |
US7140008B2 (en) * | 2002-11-25 | 2006-11-21 | Microsoft Corporation | Dynamic temporal optimization framework |
US20040205165A1 (en) * | 2003-01-21 | 2004-10-14 | Eplication Networks Ltd. | Method for improving quality of service from an Internet server employing heuristic optimization of downloading |
US7469324B2 (en) * | 2005-01-07 | 2008-12-23 | Azul Systems, Inc. | System and method for concurrent compacting self pacing garbage collection using loaded value and access barriers |
JP2005332146A (ja) * | 2004-05-19 | 2005-12-02 | Internatl Business Mach Corp <Ibm> | 動的コンテンツ作成プログラムの生成装置、動的コンテンツ作成プログラムを生成するためのプログラム、及び動的コンテンツ作成プログラムの生成方法 |
US7979685B1 (en) * | 2007-11-27 | 2011-07-12 | Oracle America, Inc. | Multiple instruction execution mode resource-constrained device |
-
2009
- 2009-07-02 JP JP2009158204A patent/JP2011013985A/ja active Pending
-
2010
- 2010-06-30 US US12/826,820 patent/US8336039B2/en not_active Expired - Fee Related
-
2012
- 2012-11-08 US US13/671,958 patent/US8479182B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0736709A (ja) * | 1993-07-20 | 1995-02-07 | Nec Corp | 手続き呼び出し方式 |
JP2000222219A (ja) * | 1999-01-27 | 2000-08-11 | Internatl Business Mach Corp <Ibm> | 多次元配列オブジェクトの処理方法及び装置 |
JP2003216442A (ja) * | 2002-01-17 | 2003-07-31 | Internatl Business Mach Corp <Ibm> | プログラム変換方法、これを用いたコンピュータ装置及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
US8336039B2 (en) | 2012-12-18 |
US20110004869A1 (en) | 2011-01-06 |
US8479182B2 (en) | 2013-07-02 |
US20130067431A1 (en) | 2013-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7886293B2 (en) | Optimizing system behavior in a virtual machine environment | |
US10534727B2 (en) | Apparatus and method for handling page protection faults in a computing system | |
JP4417346B2 (ja) | 微細粒度変換判別方法及び装置 | |
US8799879B2 (en) | Method and apparatus for protecting translated code in a virtual machine | |
US7743280B2 (en) | Method and system for analyzing memory leaks occurring in java virtual machine data storage heaps | |
US8875114B2 (en) | Employing identifiers provided by an operating system of a processing environment to optimize the processing environment | |
EP0853278A2 (en) | Fast traps for computer software instrumentation | |
US7506096B1 (en) | Memory segment emulation model for virtual machine | |
TW201042455A (en) | Method of providing extended memory protection | |
US20120102284A1 (en) | Method for detecting access to object, and computer and computer program product for the same | |
TWI651955B (zh) | 用於基於偵測受防護儲存器事件以識別處理器屬性之電腦程式產品、電腦系統及電腦實施方法 | |
US9448931B2 (en) | Endian conversion method and system | |
TWI663547B (zh) | 用於於虛擬化環境中保存/復原受防護之儲存器控制之電腦程式產品、電腦實施方法及電腦系統 | |
TW201830237A (zh) | 在異動執行期間之受保護儲存器事件處置 | |
JP2011013985A (ja) | プログラム、装置、および方法 | |
CN110663082B (zh) | 数据处理系统和方法 | |
JP2009282774A (ja) | エミュレーションプログラム、エミュレーション装置およびエミュレーション方法 | |
KR101533224B1 (ko) | 호스트 데이터 처리장치내의 디바이스 에뮬레이션 지원 | |
US20180173728A1 (en) | Information processing apparatus and method | |
JPH0192856A (ja) | アクセス及び欠陥論理信号を用いて主メモリユニットを保護する装置及び方法 | |
US11216280B2 (en) | Exception interception | |
US20120323552A1 (en) | Apparatus and Method for Hardware Initiation of Emulated Instructions | |
US20080244335A1 (en) | Protecting memory operations involving zero byte allocations | |
CN108958879B (zh) | 一种虚拟机的监控方法和装置 | |
EP0570646A1 (en) | Method for processor simulation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101207 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110222 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110330 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110614 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20110630 |