JP2012104038A - コンピュータにおけるオブジェクトの処理方法、プログラム及びシステム - Google Patents
コンピュータにおけるオブジェクトの処理方法、プログラム及びシステム Download PDFInfo
- Publication number
- JP2012104038A JP2012104038A JP2010253987A JP2010253987A JP2012104038A JP 2012104038 A JP2012104038 A JP 2012104038A JP 2010253987 A JP2010253987 A JP 2010253987A JP 2010253987 A JP2010253987 A JP 2010253987A JP 2012104038 A JP2012104038 A JP 2012104038A
- Authority
- JP
- Japan
- Prior art keywords
- address
- stack
- stack frame
- heap
- working set
- 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.)
- Granted
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/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】 処理系は、ヒープ・オブジェクト化されたスタック・オブジェクトのアドレスAを、ワーキング・セットに追加して、スタックを走査する。次に、アドレスAを割り当てるスタック・フレームを検出して、現在のスタック・フレームとする。現在のスタック・フレーム中に、ワーキング・セットに追加されたアドレスを指し示す変数がみつかると、それを、対応するヒープ・オブジェクトのアドレスに書き換える。現在のスタック・フレーム中のスタック・オブジェクトのフィールドが、ワーキング・セットに含まれているアドレスを指し示すなら、処理系は、そのスタック・オブジェクトのアドレスを、ワーキング・セットに追加する。現在見ているスタック・フレームが、ワーキング・セットに含まれているアドレスに対するポインタを含むなら、次のスタック・フレームに進み、そうでないなら、処理系は、そこでスタックの走査を終了する。
【選択図】 図6
Description
class S {
}
class T {
S a;
}
void foo() {
S a = new S();
bar(a);
}
void bar(S a) {
T b = new T();
b.a = a;
...
}
void foo() {
//ここでアドレスAにスタック割当てしたとする。
Object x = new Object();
bar(x);
}
void bar(Object y) {
System.out.println(y);
barbar();
}
void barbar() {
barbarbar()
}
void barbarbar() {
...
}
104 ヒープ
106、112 スタック・オブジェクト
202 ヒープ・オブジェクト
404 CPU
406 主記憶
408 ハードディスク・ドライブ
502 オペレーティング・システム
504 JVM
802 スタック
804 ヒープ
806、814 スタック・オブジェクト
808 ヒープ・オブジェクト
Claims (8)
- コンピュータの処理により、スタック・フレームにあるオブジェクトをヒープ・オブジェクト化する方法であって、
ヒープ領域にコピーすべきスタック・フレーム上の所定のオブジェクトのアドレスをワーキング・セットに格納するステップと、
前記所定のオブジェクトをヒープ領域にコピーして、そのヒープ領域上でのアドレスを保持するステップと、
スタック・フレームを順に辿り、前記ワーキング・セットに格納したアドレスを指示するポインタが見つかると、それが指示するアドレスを、前記ヒープ領域上でのアドレスに変換し、次のスタック・フレームに進むステップであって、当該アドレス変換において、変換したアドレスがスタック・フレーム上のオブジェクトのフィールドの値として格納されている場合は、そのオブジェクトのアドレスをワーキング・セットに格納するステップと、
スタック・フレームに前記ワーキング・セットに格納したアドレスを指示するポインタが見つからないことに応答して、処理を停止するステップを有する、
方法。 - 請求項1の方法を実行するステップを含む、スタック圧縮方法。
- 請求項1の方法を実行するステップを含む、ワーク・スティーリング方法。
- 前記各ステップは、Java(R)仮想マシン上で実行される、請求項1の方法。
- コンピュータの処理により、スタック・フレームにあるオブジェクトをヒープ・オブジェクト化するプログラムであって、
前記コンピュータに、
ヒープ領域にコピーすべきスタック・フレーム上の所定のオブジェクトのアドレスをワーキング・セットに格納するステップと、
前記所定のオブジェクトをヒープ領域にコピーして、そのヒープ領域上でのアドレスを保持するステップと、
スタック・フレームを順に辿り、前記ワーキング・セットに格納したアドレスを指示するポインタが見つかると、それが指示するアドレスを、前記ヒープ領域上でのアドレスに変換し、次のスタック・フレームに進むステップであって、当該アドレス変換において、変換したアドレスがスタック・フレーム上のオブジェクトのフィールドの値として格納されている場合は、そのオブジェクトのアドレスをワーキング・セットに格納するステップと、
スタック・フレームに前記ワーキング・セットに格納したアドレスを指示するポインタが見つからないことに応答して、処理を停止するステップを実行させる、
プログラム。 - 前記各ステップは、Java(R)仮想マシン上で実行される、請求項5のプログラム。
- コンピュータの処理により、スタック・フレームにあるオブジェクトをヒープ・オブジェクト化するシステムであって、
ヒープ領域にコピーすべきスタック・フレーム上の所定のオブジェクトのアドレスをワーキング・セットに格納する手段と、
前記所定のオブジェクトをヒープ領域にコピーして、そのヒープ領域上でのアドレスを保持する手段と、
スタック・フレームを順に辿り、前記ワーキング・セットに格納したアドレスを指示するポインタが見つかると、それが指示するアドレスを、前記ヒープ領域上でのアドレスに変換し、次のスタック・フレームに進む手段であって、当該アドレス変換において、変換したアドレスがスタック・フレーム上のオブジェクトのフィールドの値として格納されている場合は、そのオブジェクトのアドレスをワーキング・セットに格納する手段と、
スタック・フレームに前記ワーキング・セットに格納したアドレスを指示するポインタが見つからないことに応答して、処理を停止する手段を有する、
システム。 - 前記各手段は、Java(R)仮想マシン上で実行される、請求項7のシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010253987A JP5379779B2 (ja) | 2010-11-12 | 2010-11-12 | コンピュータにおけるオブジェクトの処理方法、プログラム及びシステム |
US13/287,242 US8838874B2 (en) | 2010-11-12 | 2011-11-02 | Method, program, and system for processing object in computer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010253987A JP5379779B2 (ja) | 2010-11-12 | 2010-11-12 | コンピュータにおけるオブジェクトの処理方法、プログラム及びシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012104038A true JP2012104038A (ja) | 2012-05-31 |
JP5379779B2 JP5379779B2 (ja) | 2013-12-25 |
Family
ID=46048729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010253987A Active JP5379779B2 (ja) | 2010-11-12 | 2010-11-12 | コンピュータにおけるオブジェクトの処理方法、プログラム及びシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8838874B2 (ja) |
JP (1) | JP5379779B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9753846B2 (en) * | 2012-09-06 | 2017-09-05 | Red Hat, Inc. | Adjusting the operating memory used by a virtual machine during runtime |
US11146629B2 (en) * | 2014-09-26 | 2021-10-12 | Red Hat, Inc. | Process transfer between servers |
US10853343B2 (en) * | 2017-05-16 | 2020-12-01 | Sap Se | Runtime data persistency for in-memory database systems |
CN112100017B (zh) * | 2019-06-17 | 2023-07-21 | 腾讯科技(深圳)有限公司 | 一种内存资源监控方法及装置 |
US11397568B2 (en) * | 2019-12-10 | 2022-07-26 | International Business Machines Corporation | Escape analysis support for method redefinition |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5949973A (en) * | 1997-07-25 | 1999-09-07 | Memco Software, Ltd. | Method of relocating the stack in a computer system for preventing overrate by an exploit program |
JP2004078750A (ja) * | 2002-08-21 | 2004-03-11 | Nippon Telegr & Teleph Corp <Ntt> | オブジェクト管理装置および方法とプログラム |
US20050080980A1 (en) * | 2003-09-30 | 2005-04-14 | Intel Corporation | Method and system of permitting stack allocation to programs having open-world features |
US20090307431A1 (en) * | 2008-06-06 | 2009-12-10 | Garst Jr Gerald Blaine | Memory management for closures |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2345159B (en) * | 1998-12-23 | 2003-08-20 | Ibm | Virtual machine memory management |
US6247027B1 (en) * | 1999-05-17 | 2001-06-12 | Sun Microsystems, Inc. | Facilitating garbage collection during object versioning for space and time dimensional computing |
US7085789B1 (en) * | 2001-07-30 | 2006-08-01 | Microsoft Corporation | Compact garbage collection tables |
US8825719B2 (en) * | 2008-10-30 | 2014-09-02 | Microsoft Corporation | Incremental lock-free stack scanning for garbage collection |
-
2010
- 2010-11-12 JP JP2010253987A patent/JP5379779B2/ja active Active
-
2011
- 2011-11-02 US US13/287,242 patent/US8838874B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5949973A (en) * | 1997-07-25 | 1999-09-07 | Memco Software, Ltd. | Method of relocating the stack in a computer system for preventing overrate by an exploit program |
JP2004078750A (ja) * | 2002-08-21 | 2004-03-11 | Nippon Telegr & Teleph Corp <Ntt> | オブジェクト管理装置および方法とプログラム |
US20050080980A1 (en) * | 2003-09-30 | 2005-04-14 | Intel Corporation | Method and system of permitting stack allocation to programs having open-world features |
US20090307431A1 (en) * | 2008-06-06 | 2009-12-10 | Garst Jr Gerald Blaine | Memory management for closures |
Also Published As
Publication number | Publication date |
---|---|
US8838874B2 (en) | 2014-09-16 |
US20120124018A1 (en) | 2012-05-17 |
JP5379779B2 (ja) | 2013-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6948172B1 (en) | Preemptive multi-tasking with cooperative groups of tasks | |
US6442568B1 (en) | Customer information control system application programming interface with transient data functions, in a loosely coupled data processing environment | |
US5511192A (en) | Method and apparatus for managing thread private data in a parallel processing computer | |
JP4917138B2 (ja) | オブジェクト最適配置装置、オブジェクト最適配置方法、及びオブジェクト最適配置プログラム | |
JP5182801B2 (ja) | コンピューティング環境内のメモリ管理方法、メモリ管理システム及びコンピュータ・プログラム | |
JP5379779B2 (ja) | コンピュータにおけるオブジェクトの処理方法、プログラム及びシステム | |
JP5980916B2 (ja) | コンピュータにより実行される方法及びコンピュータシステム | |
JP2007213490A (ja) | アプリケーションサーバシステムおよび仮想マシンプログラム | |
US20040268370A1 (en) | Exception handling | |
US11456914B2 (en) | Implementing affinity and anti-affinity with KUBERNETES | |
US11016886B2 (en) | Multi-ring shared, traversable, and dynamic advanced database | |
JP5588072B2 (ja) | メモリ割り当て方法、プログラム、及びシステム | |
WO2006111208A1 (en) | Process and system for real-time relocation of objects during garbage collection | |
JP2008107966A (ja) | 計算機システム | |
US7240176B2 (en) | Apparatus and methods for placing a managed heap | |
US8930677B2 (en) | Computer operation control method, program, and system | |
US10423526B2 (en) | Method, program, and system for reducing the cost of stack scanning | |
US7401178B1 (en) | Expanded memory space in environments including virtual machines | |
US8533686B2 (en) | Methods and systems for porting Sysprof | |
Fleming et al. | Improving the schedulability of mixed criticality cyclic executives via limited task splitting | |
EP3916540A1 (en) | Compiling monoglot function compositions into a single entity | |
JP2003241967A (ja) | プログラム実行装置およびその方法、並びにそこで実行されるプログラム | |
KR20070009777A (ko) | 객체 관리 시스템 및 방법 | |
CN117270822A (zh) | 一种不中断应用服务的Java代码布局优化方法 | |
JP2020113244A (ja) | Rtosアプリケーションデバッグ装置及びrtosアプリケーションデバッグ方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130802 |
|
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: 20130903 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130927 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5379779 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |