JP2005521117A - Javaプログラミング環境におけるオブジェクトの表現のための2ティアのクラスタ - Google Patents

Javaプログラミング環境におけるオブジェクトの表現のための2ティアのクラスタ Download PDF

Info

Publication number
JP2005521117A
JP2005521117A JP2003517747A JP2003517747A JP2005521117A JP 2005521117 A JP2005521117 A JP 2005521117A JP 2003517747 A JP2003517747 A JP 2003517747A JP 2003517747 A JP2003517747 A JP 2003517747A JP 2005521117 A JP2005521117 A JP 2005521117A
Authority
JP
Japan
Prior art keywords
java
class
java object
virtual machine
representation
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
Application number
JP2003517747A
Other languages
English (en)
Other versions
JP4864287B2 (ja
Inventor
ソコロフ・ステパン
ワルマン・デイビッド
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JP2005521117A publication Critical patent/JP2005521117A/ja
Application granted granted Critical
Publication of JP4864287B2 publication Critical patent/JP4864287B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】 Javaプログラミング環境におけるオブジェクトの表現の改良された方法を提供する。
【解決手段】 この技術は仮想マシン、特に限られたリソースで動作するもの(例えば組み込みシステム)の中のJavaオブジェクトの表現に非常に適する。Javaオブジェクト表現のクラスタが開示される。Javaオブジェクト表現のそれぞれは、Javaオブジェクトへの参照およびJavaオブジェクトに関連付けられたクラスへの参照を提供する。したがって2ティア表現は、Javaオブジェクトおよびクラスの両方に関する情報にアクセスするのが必要なアプリケーションを効率的に実現することを可能にするよう提供されえる。これは、ゴミ集めのように多大なリソースを要求するアプリケーションを実行するのに必要な処理が低減されることを意味する。さらに2ティア表現内の参照の一つは、オブジェクトに関連付けられた内部クラス表現に直接にアクセスすることを可能にする。その結果、本発明は、Javaオブジェクトに関する情報に高速にアクセスすることを可能にする。よって本発明は、仮想マシン、特に限られた計算パワーおよび/またはメモリを持つシステムのパフォーマンスを向上させることができる。

Description

本発明は、大きくはJAVAプログラミング環境に関し、より具体的にはJAVAプログラミング環境におけるオブジェクトの表現に適した手法に関する。
高級言語の一つのゴールは、コンピュータプログラムが容易に他のコンピュータプラットフォームに移植できるような可搬性のあるプログラミング環境を提供することにある。「C」のような高級言語は、根底にあるコンピュータアーキテクチャからの抽象化のレベルを提供し、これら言語の成功は多くのコンピュータアプリケーションが今や高級言語で書かれる事実によってよく証明されている。
可搬性は、グラフィカルインタフェースを通してさまざまなコンピュータプラットフォーム間での通信を可能にするインターネットのインタフェースプロトコルであるワールドワイドウェブ(「ウェブ」)の出現とともに新たな頂へと導かれた。ウェブ上で通信するコンピュータは、アプレットと呼ばれる小さなアプリケーションをダウンロードし実行することができる。アプレットがコンピュータプラットフォームのさまざまな組み合わせの上で実行されえることを仮定すれば、アプレットは典型的にはJava(登録商標)仮想マシンによって実行される。
近年、Javaプログラミング環境はかなり人気が出てきた。Javaプログラミング言語は、小さなデバイス(例えば、ポケベル、携帯電話およびスマートカード)からスーパコンピュータに至るまで広い範囲のコンピュータ上で実行されえるだけ充分に可搬性を持つよう設計される言語である。Javaで書かれたコンピュータプログラミング(および他の言語)は、Java仮想マシンの実装によって実行されるのに適したJavaバイトコードインストラクションにコンパイルされえる。Java仮想マシンはふつうソフトウェア中でJava仮想マシンインストラクションセットのためのインタプリタとしてインプリメントされるが、一般にはソフトウェア、ハードウェア、またはその両方でありえる。特定のJava仮想マシンのインプリメンテーションおよび対応するサポートライブラリは共にJavaランタイム環境を構成する。
Javaプログラミング言語によるコンピュータプログラムは、1つ以上のクラスまたはインタフェース(ここでは併せてクラスまたはクラスファイルと呼ばれる)に組まれる。このようなプログラムは一般にプラットフォーム、すなわちハードウェアおよびオペレーティングシステムに依存しない。よってこれらのコンピュータプログラムは修正することなく、Javaランタイム環境のインプリメンテーションを走らせることができるどのようなコンピュータ上でも実行されえる。
Javaプログラミング言語で書かれたオブジェクト指向のクラスは、「クラスファイルフォーマット」と呼ばれる特定のバイナリフォーマットでコンパイルされる。このクラスファイルは、単一のクラスに関連付けられたさまざまな要素を含む。これらの要素は例えばクラスに関連付けられたメソッドおよび/またはインタフェースでありえる。さらにクラスファイルフォーマットはクラスに関連付けられるかなりの量の補助的な情報を含みえる。クラスファイルフォーマット(Java仮想マシンの一般的な動作と共に)は、Tim LindholmおよびFrank Yellinによる「The Java Virtual Machine Specification」第2版にある程度詳細に記載され、ここで参照によって援用される。
図1Aは、インタプリタであるJava仮想マシンによる実行を通して、簡単な一つのJavaソースコード101の処理の進行を示す。Javaソースコード101は、Javaで書かれた古典的なハローワールドのプログラムを含む。このソースコードはそれから、ソースコードをバイトコードにコンパイルするバイトコードコンパイラ103に入力される。バイトコードは、ソフトウェアでエミュレートされたコンピュータによって実行されるので、仮想マシンインストラクションである。典型的には仮想マシンインストラクションは汎用である(すなわち特定のマイクロプロセッサまたはコンピュータアーキテクチャのために設計されてはいない)が、これは必要ではない。バイトコードコンパイラは、Javaプログラムのバイトコードを含むJavaクラスファイル105を出力する。JavaクラスファイルはJava仮想マシン107に入力される。Java仮想マシンは、Javaクラスファイル中のバイトコードをデコードし実行するインタプリタである。Java仮想マシンはインタプリタであるが、ソフトウェアでマイクロプロセッサまたはコンピュータアーキテクチャをエミュレートする(例えばマイクロプロセッサまたはコンピュータアーキテクチャはハードウェアとしては存在しないかもしれない)のでふつうは仮想マシンと呼ばれる。
図1Bは、簡略化されたクラスファイル100を示す。図1Bに示されるように、クラスファイル100は、コンスタントプール102の部分、インタフェース部分104、フィールド部分106、メソッド部分108、および属性部分110を含む。属性(または属性テーブル)110部分は、クラスファイル100に関連付けられた属性を表す。これは1つ以上の属性が定義されることを可能にし、これらのそれぞれがクラスファイルの1つ以上の要素と関連付けられえる。当業者には知られるように、Java仮想マシンを実装するとさまざまな属性を定義し使用することができる。さらに仮想マシンの実装は、それが認識しない属性を無視する。よってクラスファイルは1つ以上の属性を含みえ、それらの全てが特定の仮想マシンの実装によって認識されるか、あるいはそれらの全てが特定の仮想マシンの実装によって認識されないかのいずれもありえる。
従来、Javaオブジェクトは、オブジェクトに関連付けられたメソッドがオブジェクト表現から参照されえるように、メモリ内で表現される。典型的にはJavaオブジェクト表現からそのオブジェクトに関連付けられたメソッドを含むメソッドテーブルへの直接の参照が存在する。メソッドテーブルへの直接参照によりメソッド起動が実行されることが可能になるが、従来のJavaでのオブジェクト表現はオブジェクトに関する情報(例えばオブジェクトタイプ、オブジェクトサイズ、静的フィールドなど)を見つけるのにある程度の処理が必要である。このようなJavaオブジェクトに関する情報は、オブジェクトの内部クラス表現内に格納されえる。換言すれば、仮想マシンは典型的にはJavaオブジェクトのクラスに関連付けられた情報を内部で表現し、格納する。しかしこの情報にアクセスすることは貴重な処理時間をとる。これは、特に計算パワーおよび/またはメモリが制限されたシステムにおいては仮想マシンのパフォーマンスを深刻に低下させる。
さらに従来のJavaオブジェクト表現を用いると、JavaクラスとともにJavaオブジェクトの除去を可能にする単一の「ゴミ集め(garbage collection、ガーベッジコレクション)」スキームをインプリメントするのが困難である。換言すると従来は、Javaオブジェクトが必要なくなったときにはあるゴミ集め方法がJavaオブジェクトを除去するのに用いられ、クラスが必要なくなったときには別のゴミ集め方法がクラスを除去するのに用いられる。よって従来は、ゴミ集めは従来の仮想マシンのかなりの量のメモリおよび計算時間を使用しえる。その結果、仮想マシンのパフォーマンスは悪影響を受け、特に比較的少ないリソースで動作しているときはそうである(例えば組み込みシステム)。
上述を鑑みて、JAVAプログラミング環境でのオブジェクト表現のための改良された技術が必要とされる。
大きく言えば、本発明は、Javaプログラミング環境におけるオブジェクトの表現についての技術に関する。この技術は、仮想マシン内のJavaオブジェクトの表現、特に限られたリソースで動作するもの(例えば組み込みシステム)に非常に適している。本発明のある仮想マシンによれば、複数のJavaオブジェクト表現を含むクラスタが開示される。理解されるように、クラスタ内のJavaオブジェクト表現のそれぞれは、Javaオブジェクトへの参照およびJavaオブジェクトに関連付けられたクラスへの参照を提供する。したがって2ティア表現は、Javaオブジェクトおよびクラスの両方に関する情報にアクセスするのが必要なアプリケーションを効率的に実現することを可能にするよう提供されえる。よって本発明は、ゴミ集めのように多大なリソースを要求するアプリケーションを実行するのに必要な処理を低減するのに使用されえる。その結果、仮想マシンのパフォーマンス、特に比較的限られたリソースで動作するもののそれは改善されえる。
さらに2ティア表現内の参照の一つは、オブジェクトに関連付けられた内部クラス表現に直接にアクセスすることを可能にする。内部クラス表現は、Javaオブジェクトに関する情報(例えばオブジェクトサイズ、オブジェクトタイプ、静的フィールドなど)を提供する。その結果、本発明は、Javaオブジェクトに関する情報に高速にアクセスすることを可能にする。これは、Javaオブジェクトに関する情報にアクセスするのに従来必要とされた処理時間が短くなることを意味する。よって本発明は、仮想マシン、特に限られた計算パワーおよび/またはメモリを持つシステムのパフォーマンスを向上させることができる。
本発明は、方法、装置、コンピュータで読み取り可能な媒体、およびデータベースシステムを含む多くの手法で実現されえる。本発明のいくつかの実施形態が以下に説明される。
仮想マシンとして、本発明のある実施形態は、複数のJavaオブジェクト表現を含むメモリの第1部分を含み、前記Javaオブジェクト表現のそれぞれは、Javaオブジェクトに関連付けられたクラスの内部クラス表現への第1参照、およびJavaオブジェクトに関連付けられたインスタンスフィールドへの第2参照を含む。
アクティブなJavaオブジェクトおよびアクティブなJavaクラスを識別する方法として本発明のある実施形態は、順次配列されたJavaオブジェクト表現のクラスタを読むこと、JavaオブジェクトまたはJavaクラスのいずれが識別されるべきかを決定すること、Javaオブジェクトが識別されるべきであると前記決定が決定するときにJavaオブジェクトに対応するメモリアドレスにマークを付けること、およびJavaクラスが識別されるべきであると前記決定が決定するときにJavaクラスに対応するメモリアドレスにマークを付けることを含む。
アクティブなJavaオブジェクトおよびアクティブJavaクラスを識別するコンピュータプログラムコードを含むコンピュータで読み取り可能な媒体として、本発明のある実施形態は、クラスタ内に順次配列されたJavaオブジェクト表現のクラスタを読むコンピュータプログラムコード、JavaオブジェクトまたはJavaクラスのいずれが識別されるべきかを決定するコンピュータプログラムコード、Javaオブジェクトが識別されるべきであると前記決定が決定するときにJavaオブジェクトに対応するメモリアドレスにマークを付けるコンピュータプログラムコード、およびJavaクラスが識別されるべきであると前記決定が決定するときにJavaクラスに対応するメモリアドレスにマークを付けるコンピュータプログラムコードを含む。
本発明のこれらや他の局面および利点は、以下の詳細な説明が添付図面と共に読まれればより明らかになろう。
本発明は添付の図面を参照して以下の詳細な説明によって容易に理解されるだろう。図面において同様の参照番号は同様の要素を表す。
背景技術において述べられたように、Javaプログラミング環境は大きく広がった成功を収めた。したがってJavaコンパチブルなデバイスの幅を広げ、そのようなデバイスのパフォーマンスを改善しようとする努力が続いている。特定のプラットフォーム上でのJavaベースのプログラムのパフォーマンスに最も影響を与えるファクタの一つは、基礎になる仮想マシンのパフォーマンスである。典型的には仮想マシンは、Javaオブジェクトのクラスに関連付けられた情報を内部において表現し格納する。しかし従来の技術を用いてこの情報にアクセスするのには貴重な処理時間をとる。これは特に計算パワーおよび/またはメモリが制限されているシステムにおいては、仮想マシンのパフォーマンスを深刻に低下しえる。したがってJavaに従う仮想マシンのパフォーマンスを改善するための努力が多くの団体によって精力的になされてきた。
本発明はJavaプログラミング環境におけるオブジェクト表現の技術に関する。この技術は仮想マシン内のJavaオブジェクトの表現に非常に適しており、特に限定されたリソースで動作するもの(例えば組み込みシステム)についてはそうである。本発明のある局面によれば、複数のJavaオブジェクト表現を含むクラスタが開示される。理解されるように、クラスタ内のJavaオブジェクト表現のそれぞれはJavaオブジェクトへの参照およびそのJavaオブジェクトに関連付けられたクラスへの参照を提供する。したがって2つのティア表現が提供されえ、これはJavaオブジェクトおよびクラスの両方についての情報にアクセスする必要があるアプリケーションの効率的なインプリメンテーションを可能する。よって本発明はゴミ集めのようなリソースの時間を大量に消費しえるアプリケーションを実行するのに必要な処理を低減するのに用いられえる。その結果、仮想マシンのパフォーマンスは、特に比較的に小さいリソースで動作する仮想マシンのパフォーマンスは改善しえる。
さらに、2ティア表現の参照のうちの一つは、オブジェクトに関連付けられた内部クラス表現への直接アクセスを提供しえる。この内部クラス表現はJavaオブジェクトに関する情報(例えばオブジェクトサイズ、オブジェクトタイプ、静的フィールドなど)を提供する。その結果、本発明は、Javaオブジェクトについての情報へ素早くアクセスすることを可能にする。これはJavaオブジェクトについての情報へアクセスするのに従来必要だった処理時間が短縮されることを意味する。よって本発明は、仮想マシンのパフォーマンス、特に計算パワーおよび/またはメモリが制限されているシステムにおけるパフォーマンスを向上させることができる。本発明の実施形態は図2〜4を参照して以下に説明される。しかしこれらの図を参照してここで与えられた詳細な説明は説明の目的だけであって、本発明はこれらの限定された実施形態を超えるものであることが当業者には容易に理解されよう。
図2は、本発明のある実施形態によるクラスタ200を含むJavaコンピューティング環境を示す。クラスタ200は、Java仮想マシンのメモリ部分のインプリメンテーションに適する。図2に示されるように、クラスタ200は、複数の2ティアオブジェクト表現202、204、206および208を含み、これらオブジェクト表現のそれぞれは第1部分Cおよび第2部分Oからなる。第1部分C1、C2、Ci、およびCnはJavaクラスへの参照を表す。第2部分O1、O2、Oi、およびOnはJavaオブジェクトへの参照を表す。したがって2ティアオブジェクト表現202、204、206および208は、そのクラスに関連付けられたJavaクラスおよびオブジェクトへの参照を提供する。例えば2ティアオブジェクト表現206は、クラスIへの参照CiおよびクラスIのオブジェクトIへの参照Oiを提供する。当業者には理解されるように、クラスタ200の構成は効率的なアクセスを可能にするが、これは第1および第2部分が同じサイズでありえるからである(例えば4バイト)。
クラスへの参照は、クラスの内部クラス表現への参照でありえる。図3は、本発明のある実施形態についてのJavaオブジェクト表現を示す。Javaオブジェクト表現300は、図2の2ティアオブジェクト表現202、204、206および208をより詳細に示す。図3に示されるように、オブジェクト表現300は、内部クラス表現304への第1参照302を含む。内部クラス表現304は、Javaオブジェクトに関する情報を提供する。この情報はJavaオブジェクトに関する情報と共に、例えば、メソッドテーブル306およびフィールド記述子テーブル308を含みえる。記載された実施形態においては、所定の大きさのヘッダ309の後にメソッドテーブル306がすぐに続く。
理解されるように、第1参照302は、内部クラス表現304に直接にアクセスするのに使用されえ、その結果、Javaオブジェクトに関する情報は高速にアクセスされる。その結果、オブジェクトに関する情報は、この情報を見つける処理により多くの時間を必要とする従来の手法よりも、より高速にアクセスされえる。
さらにオブジェクト表現300は、Javaオブジェクトに関連付けられたインスタンスフィールドへの第2参照310を含む。これらのインスタンスフィールドは、それぞれのオブジェクトについてユニークでありえ、例えば、Javaオブジェクトに関連付けられたインスタンス変数I1〜Inを含む。Javaプログラム言語の文脈におけるインスタンスフィールドは当業者にはよく知られている。
内部オブジェクト表現300は、Javaオブジェクトをユニークに識別する識別子を含みえることに注意されたい。当業者には理解されるように、識別子はハッシュキーでありえる。ある実施形態においては、第1参照302のアドレスはハッシュキーとして用いられる。第1および第2参照232および310は2つの連続するメモリアドレスを表現することにも注意されたい。そのため第1および第2参照302および310のそれぞれは、仮想マシン中のメモリ部における連続する4バイト(1ワード)でありえる。
図4は、本発明のある実施形態によるアクティブなJavaオブジェクトおよびクラスを識別する方法400を示す。そのため方法400は、ゴミ集めを実行するために仮想マシン内で用いられえる。さらに方法400は、Javaクラスおよびオブジェクトの両方についてゴミ集めを実行するのに用いられえる。したがって方法400は、効率的なゴミ集めのアプリケーションを実現することを可能にする。
まず操作402において、2ティアJavaオブジェクト表現のクラスタの順次読み出しが起動される。次に操作404において、JavaオブジェクトまたはJavaクラスのいずれが識別されるべきかが決定される。もし操作404においてJavaオブジェクトが識別されるべきであると決定されるなら、方法400は操作406に進み、ここでJavaオブジェクトへの参照が2ティアJavaオブジェクト表現のクラスタから順次読み出しされる。その後、操作408において、読み出されたメモリアドレスにマークが付けられる。方法400は操作408に続いて終了する。しかしもし操作404においてJavaクラスが識別されるべきであると決定されるなら、方法400は操作410に進み、ここでJavaクラスへの参照が2ティアJavaオブジェクト表現のクラスタから順次読み出しされる。その後、操作408において、読み出されたメモリアドレスにマークが付けられる。方法400は操作408に続いて終了する。
本発明の多くの特徴および利点は詳細な説明から明らかであり、よって添付の特許請求の範囲は本発明の全てのそのような特徴および利点を含むと意図される。さらに多くの改変および変更が当業者には容易に可能であるので、本発明は図示され記載されたのまったく同一の構成および動作に限定されるべきではない。したがって全ての適切な変更および等価物は本発明の範囲に含まれるように解される。
インタプリタであるJava仮想マシンによる実行を通したJavaソースコードの簡単なものの進行を示す図である。 簡略化されたクラスファイルを示す図である。 本発明のある実施形態によるJavaオブジェクト表現のクラスタを含むJavaコンピューティング環境を示す図である。 本発明のある実施形態によるJavaオブジェクト表現を示す図である。 本発明のある実施形態によるアクティブJavaオブジェクトおよびクラスを識別する方法を示す図である。

Claims (20)

  1. 複数のJavaオブジェクト表現を含むメモリの第1部分であって、前記Javaオブジェクト表現のそれぞれは、
    Javaオブジェクトに関連付けられたクラスの内部クラス表現への第1参照、および
    Javaオブジェクトに関連付けられたインスタンスフィールドへの第2参照
    を含むJava仮想マシン。
  2. 請求項1に記載のJava仮想マシンであって、前記Java仮想マシンは、
    前記第1参照に関連付けられたJavaクラスの内部クラス表現、および
    前記第2参照によって参照されるJavaオブジェクトのインスタンスフィールド
    を含むメモリの第2部分をさらに備えるJava仮想マシン。
  3. 請求項2に記載のJava仮想マシンであって、前記複数のJavaオブジェクト表現は同じサイズを有するJava仮想マシン。
  4. 請求項3に記載のJava仮想マシンであって、前記第1参照は、前記Javaオブジェクトの前記内部クラス表現への直接参照であるJava仮想マシン。
  5. 請求項4に記載のJava仮想マシンであって、
    前記第2参照は、参照群のアレイへの参照であり、
    前記参照群のアレイ内のそれぞれの参照は、前記Javaオブジェクトに関連付けられたインスタンスフィールドへの参照である
    Java仮想マシン。
  6. 請求項5に記載のJava仮想マシンであって、前記第1および第2参照は4バイトとしてアロケートされるJava仮想マシン。
  7. 請求項6に記載のJava仮想マシンであって、
    前記内部クラス表現は、所定のサイズのヘッダを含み、
    前記Javaオブジェクトに関連付けられたメソッドテーブルは前記ヘッダの直後にアロケートされる
    Java仮想マシン。
  8. Javaコンピューティング環境において、アクティブなJavaオブジェクトおよびアクティブなJavaクラスを識別する方法であって、
    順次配列されたJavaオブジェクト表現のクラスタを読むこと、
    JavaオブジェクトまたはJavaクラスのいずれが識別されるべきかを決定すること、
    Javaオブジェクトが識別されるべきであると前記決定が決定するときにJavaオブジェクトに対応するメモリアドレスにマークを付けること、および
    Javaクラスが識別されるべきであると前記決定が決定するときにJavaクラスに対応するメモリアドレスにマークを付けること
    を含む方法。
  9. 請求項8に記載の方法であって、前記Javaオブジェクト表現のそれぞれは、
    Javaオブジェクトに関連付けられたクラスの内部クラス表現への第1参照、および
    前記Javaオブジェクトに関連付けられたインスタンスフィールドへの第2参照
    を含む方法。
  10. 請求項9に記載の方法であって、前記第1参照は、前記Javaオブジェクトの内部クラス表現への直接参照である方法。
  11. 請求項9に記載の方法であって、
    前記第2参照は、参照群のアレイへの参照であり、
    前記参照群のアレイ内のそれぞれの参照は、前記Javaオブジェクトに関連付けられたインスタンスフィールドへの参照である
    方法。
  12. 請求項9に記載の方法であって、前記第1および第2参照は4バイトとしてアロケートされる方法。
  13. 請求項9に記載の方法であって、前記方法は、
    マークが付けられていない内部クラス表現を取り除くこと
    をさらに含む方法。
  14. 請求項9に記載の方法であって、前記方法は、
    マークが付けられていないJavaオブジェクトを取り除くこと
    をさらに含む方法。
  15. 請求項9に記載の方法であって、前記方法は、JavaオブジェクトおよびJavaクラスのゴミ集めのために仮想マシンによって用いられる方法。
  16. アクティブなJavaオブジェクトおよびアクティブJavaクラスを識別するコンピュータプログラムコードを含むコンピュータで読み取り可能な媒体であって、
    クラスタ内に順次配列されたJavaオブジェクト表現のクラスタを読むコンピュータプログラムコード、
    JavaオブジェクトまたはJavaクラスのいずれが識別されるべきかを決定するコンピュータプログラムコード、
    Javaオブジェクトが識別されるべきであると前記決定が決定するときにJavaオブジェクトに対応するメモリアドレスにマークを付けるコンピュータプログラムコード、および
    Javaクラスが識別されるべきであると前記決定が決定するときにJavaクラスに対応するメモリアドレスにマークを付けるコンピュータプログラムコード
    を含むコンピュータで読み取り可能な媒体。
  17. 請求項16に記載のコンピュータで読み取り可能な媒体であって、前記Javaオブジェクト表現のそれぞれは、
    Javaオブジェクトに関連付けられたクラスの内部クラス表現への第1参照、および
    Javaオブジェクトに関連付けられたインスタンスフィールドへの第2参照
    を含むコンピュータで読み取り可能な媒体。
  18. 請求項17に記載のコンピュータで読み取り可能な媒体であって、前記第1参照は、前記Javaオブジェクトの前記内部クラス表現への直接参照であるコンピュータで読み取り可能な媒体。
  19. 請求項18に記載のコンピュータで読み取り可能な媒体であって、
    前記第2参照は、参照群のアレイへの参照であり、
    前記参照群のアレイ内のそれぞれの参照は、前記Javaオブジェクトに関連付けられたインスタンスフィールドへの参照である
    コンピュータで読み取り可能な媒体。
  20. 請求項19に記載のコンピュータで読み取り可能な媒体であって、前記第1および第2参照は4バイトとしてアロケートされるコンピュータで読み取り可能な媒体。
JP2003517747A 2001-07-31 2002-07-25 識別方法、記録媒体及びコンピュータシステム Expired - Lifetime JP4864287B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/919,743 US7036120B2 (en) 2001-07-31 2001-07-31 Two tier clusters for representation of objects in Java programming environments
US09/919,743 2001-07-31
PCT/US2002/023617 WO2003012637A2 (en) 2001-07-31 2002-07-25 Two tier clusters for representation of objects in java programming environments

Publications (2)

Publication Number Publication Date
JP2005521117A true JP2005521117A (ja) 2005-07-14
JP4864287B2 JP4864287B2 (ja) 2012-02-01

Family

ID=25442577

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003517747A Expired - Lifetime JP4864287B2 (ja) 2001-07-31 2002-07-25 識別方法、記録媒体及びコンピュータシステム

Country Status (5)

Country Link
US (1) US7036120B2 (ja)
EP (1) EP1481320B1 (ja)
JP (1) JP4864287B2 (ja)
AU (1) AU2002317575A1 (ja)
WO (1) WO2003012637A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005100402A (ja) * 2003-09-23 2005-04-14 Microsoft Corp オブジェクト指向プログラムのための領域ベースのメモリ管理

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7177297B2 (en) * 2003-05-12 2007-02-13 Qualcomm Incorporated Fast frequency hopping with a code division multiplexed pilot in an OFDMA system
US7526515B2 (en) * 2004-01-21 2009-04-28 International Business Machines Corporation Method and system for a grid-enabled virtual machine with movable objects
US7587721B2 (en) * 2004-05-20 2009-09-08 Sap Ag Sharing objects in runtime systems
US20060026379A1 (en) * 2004-07-27 2006-02-02 Samsung Electronics Co., Ltd. Effective memory management method and device in object-oriented application
US20100293206A1 (en) * 2009-05-12 2010-11-18 Tatu Ylonen Oy Ltd Clustering related objects during garbage collection
US9361224B2 (en) 2013-09-04 2016-06-07 Red Hat, Inc. Non-intrusive storage of garbage collector-specific management data
US10884641B2 (en) 2019-04-16 2021-01-05 Paypal, Inc. Low latency gateway for an asynchronous orchestration engine using direct memory

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6134603A (en) * 1998-03-20 2000-10-17 Sun Microsystems, Inc. Method and system for deterministic hashes to identify remote methods
US6151703A (en) * 1996-05-20 2000-11-21 Inprise Corporation Development system with methods for just-in-time compilation of programs
US5920720A (en) * 1997-02-25 1999-07-06 Microsoft Corporation Efficient computer based virtual machine object structure
US5966702A (en) * 1997-10-31 1999-10-12 Sun Microsystems, Inc. Method and apparatus for pre-processing and packaging class files
US6088777A (en) * 1997-11-12 2000-07-11 Ericsson Messaging Systems, Inc. Memory system and method for dynamically allocating a memory divided into plural classes with different block sizes to store variable length messages
US6237043B1 (en) * 1997-11-19 2001-05-22 International Business Machines Corporation System and method for adding highly optimized synchronization capability to objects at run-time
US6070173A (en) 1997-11-26 2000-05-30 International Business Machines Corporation Method and apparatus for assisting garbage collection process within a java virtual machine
US6732357B1 (en) 1997-12-12 2004-05-04 International Business Machines Corporation Determining and compensating for temporal overhead in trace record generation and processing
US6330709B1 (en) * 1998-03-30 2001-12-11 International Business Machines Corporation Virtual machine implementation for shared persistent objects
US6249906B1 (en) 1998-06-26 2001-06-19 International Business Machines Corp. Adaptive method and system to minimize the effect of long table walks
KR20010072477A (ko) 1998-08-13 2001-07-31 썬 마이크로시스템즈, 인코포레이티드 가상 머신 환경에서 네이티브 코드를 변환하고 실행하는방법 및 장치
US6154747A (en) * 1998-08-26 2000-11-28 Hunt; Rolf G. Hash table implementation of an object repository
US6115719A (en) * 1998-11-20 2000-09-05 Revsoft Corporation Java compatible object oriented component data structure
CA2255042C (en) * 1998-11-30 2004-04-13 Leonard W. Theivendra Class loader
EP1068572A2 (en) 1999-01-06 2001-01-17 Koninklijke Philips Electronics N.V. Arrangement for executing program code with reduced memory requirements
US6880155B2 (en) 1999-02-02 2005-04-12 Sun Microsystems, Inc. Token-based linking
GB9907283D0 (en) 1999-03-31 1999-05-26 Koninkl Philips Electronics Nv Memory reclamation method
GB9920676D0 (en) 1999-09-01 1999-11-03 Tao Group Ltd Translating and executing object-oriented computer programs
GB9921720D0 (en) 1999-09-14 1999-11-17 Tao Group Ltd Loading object-oriented computer programs
US6470493B1 (en) * 1999-09-30 2002-10-22 Compaq Information Technologies Group, L.P. Computer method and apparatus for safe instrumentation of reverse executable program modules
US6470893B1 (en) 2000-05-15 2002-10-29 Peter V. Boesen Wireless biopotential sensing device and method with capability of short-range radio frequency transmission and reception
US6711657B1 (en) * 1999-10-21 2004-03-23 Oracle Corp. Methods for managing memory in a run-time environment including registration of a deallocation routine at explicit, lazy initialization
US6728955B1 (en) 1999-11-05 2004-04-27 International Business Machines Corporation Processing events during profiling of an instrumented program
US6711576B1 (en) * 2000-06-12 2004-03-23 Sun Microsystems, Inc. Method and apparatus for implementing compact type signatures in a virtual machine environment
US6704746B2 (en) * 2000-12-12 2004-03-09 Sun Microsystems, Inc. Method and apparatus for lazy instantiation of objects in a virtual machine
US6851111B2 (en) 2000-12-15 2005-02-01 International Business Machines Corporation System and method for class loader constraint checking
JP2003074421A (ja) 2001-09-04 2003-03-12 Denso Corp エバポガスパージシステムのリーク診断装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005100402A (ja) * 2003-09-23 2005-04-14 Microsoft Corp オブジェクト指向プログラムのための領域ベースのメモリ管理

Also Published As

Publication number Publication date
EP1481320B1 (en) 2018-04-18
JP4864287B2 (ja) 2012-02-01
EP1481320A2 (en) 2004-12-01
US7036120B2 (en) 2006-04-25
WO2003012637A3 (en) 2004-09-23
WO2003012637A2 (en) 2003-02-13
US20030028865A1 (en) 2003-02-06
AU2002317575A1 (en) 2003-02-17

Similar Documents

Publication Publication Date Title
CN1119756C (zh) 用于进行静态初始化的方法和系统
US7003778B2 (en) Exception handling in java computing environments
US6553426B2 (en) Method apparatus for implementing multiple return sites
US6959430B2 (en) Specialized heaps for creation of objects in object-oriented environments
US6799185B2 (en) Frameworks for accessing Java class files
JP4864287B2 (ja) 識別方法、記録媒体及びコンピュータシステム
US6754796B2 (en) Frameworks for implementation of java heaps
US6948156B2 (en) Type checking in java computing environments
US7181724B2 (en) Representation of Java® data types in virtual machines
US6751790B2 (en) Frameworks for efficient representation of string objects in Java programming environments
US6961933B2 (en) Representation of Java data types in virtual machines
US6934726B2 (en) Storing and retrieving of field descriptors in Java computing environments
US7082597B2 (en) Representation of objects in a Java programming environment
JP2005501331A (ja) Javaオブジェクトをインスタンス化するためのJavaマクロインストラクションを生成するフレームワーク
US20030041181A1 (en) Frameworks for efficient representation of string objects in Java programming environments
US7197750B2 (en) Java Bytecode instruction for determining hashcode values
US20030041319A1 (en) Java bytecode instruction for retrieving string representations of java objects

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050722

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071106

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080130

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080305

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080422

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080722

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080821

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080910

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20081010

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100726

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100729

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110509

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110512

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110523

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110602

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110915

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111109

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141118

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4864287

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term