JP5883300B2 - オブジェクトを特定するためのハッシュコードを生成するための方法、プログラム及びシステム - Google Patents
オブジェクトを特定するためのハッシュコードを生成するための方法、プログラム及びシステム Download PDFInfo
- Publication number
- JP5883300B2 JP5883300B2 JP2012021187A JP2012021187A JP5883300B2 JP 5883300 B2 JP5883300 B2 JP 5883300B2 JP 2012021187 A JP2012021187 A JP 2012021187A JP 2012021187 A JP2012021187 A JP 2012021187A JP 5883300 B2 JP5883300 B2 JP 5883300B2
- Authority
- JP
- Japan
- Prior art keywords
- hash code
- heap
- generating
- heap area
- area
- 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
- 238000000034 method Methods 0.000 title claims description 25
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 2
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0269—Incremental or concurrent garbage collection, e.g. in real-time systems
- G06F12/0276—Generational garbage collection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Description
・"00" = ハッシュされていない。すなわち、オブジェクト・ハッシュコードはまだ存在しない。
・"01" = ハッシュされている。オブジェクト・ハッシュコードは、オブジェクト・アドレスから計算することができる。
・"10" = ハッシュされ、移動された。オブジェクト・ハッシュコードが、オブジェクトに付加されている。
・"00" = ハッシュされていない。すなわち、オブジェクト・ハッシュコードはまだ存在しない。
・"01" = ハッシュされている。オブジェクト・ハッシュコードは、オブジェクト・アドレスから計算することができる。
・"10" = ハッシュされ、移動された。オブジェクト・ハッシュコードが、オブジェクトに付加されている。
・"11" = ハッシュされ、ハッシュコードはヒープ外のテーブルに保存されている。たとえば、ピン止めされた(pinned)オブジェクトの移動が失敗したときにこうなる。
2ビットの領域306は、図5〜図9のフローチャートで示す実施例では、状態ビット(state bits)とも称する。
ハッシュコード = (オブジェクトのアドレス >> 3) XOR シード値
また、ここに示すハッシュコードの計算式はほんの一例であって、ビットシフト演算、XORなどの既知の演算を組み合わせて、さまざまな式を使用することができる。
106 主記憶
108 ハードディスク・ドライブ
202 オペレーティング・システム
204 JVM
502 第1のヒープ領域
504 第2のヒープ領域
506〜512 オブジェクト
524、526 ハッシュコード
Claims (15)
- コンピュータの処理により、ヒープ領域に割り付けられたオブジェクトを識別するためのハッシュコードを生成する方法であって、
前記コンピュータの処理により、前記ヒープ領域毎に、シード値を生成するステップと、
前記コンピュータの処理により、前記オブジェクトのアドレスと、前記オブジェクトが割り付けられているヒープ領域の前記シード値に基づき、前記ハッシュコードを生成するステップとを有する、
方法。 - 前記ハッシュコードを生成するステップが、前記オブジェクトのアドレスと、前記シード値のみならず、前記オブジェクトのクラスのIDの値にも基づく、請求項1に記載の方法。
- 前記シード値が擬似乱数によって生成される、請求項1に記載の方法。
- 前記ヒープ領域が、相対的に新しいオブジェクトを割り付けるための第1のヒープ領域と、相対的に古いオブジェクトを割り付けるための第2のヒープ領域を有し、
前記第1のヒープ領域から前記第2のヒープ領域にオブジェクトが移動されることに応答して、前記オブジェクトにハッシュコードを付加することが可能かどうか判断するステップと、
前記オブジェクトにハッシュコードを付加することが可能であると判断されると、ハッシュコードを生成して、前記オブジェクトに追加するステップをさらに有する、請求項1に記載の方法。 - 前記オブジェクトにハッシュコードを付加することが可能でないなら、ハッシュコードを生成してヒープ外に配置し、前記オブジェクトに関連付けるステップをさらに有する、請求項4に記載の方法。
- コンピュータの処理により、ヒープ領域に割り付けられたオブジェクトを識別するためのハッシュコードを生成するプログラムであって、
前記コンピュータに、
前記ヒープ領域毎に、シード値を生成するステップと、
前記オブジェクトのアドレスと、前記オブジェクトが割り付けられているヒープ領域の前記シード値に基づき、前記ハッシュコードを生成するステップを実行させる、
プログラム。 - 前記ハッシュコードを生成するステップが、前記オブジェクトのアドレスと、前記シード値のみならず、前記オブジェクトのクラスのIDの値にも基づく、請求項6に記載のプログラム。
- 前記シード値が擬似乱数によって生成される、請求項6に記載のプログラム。
- 前記ヒープ領域が、相対的に新しいオブジェクトを割り付けるための第1のヒープ領域と、相対的に古いオブジェクトを割り付けるための第2のヒープ領域を有し、
前記第1のヒープ領域から前記第2のヒープ領域にオブジェクトが移動されることに応答して、前記オブジェクトにハッシュコードを付加することが可能かどうか判断するステップと、
前記オブジェクトにハッシュコードを付加することが可能であると判断されると、ハッシュコードを生成して、前記オブジェクトに追加するステップをさらに前記コンピュータに実行させる、請求項6に記載のプログラム。 - 前記オブジェクトにハッシュコードを付加することが可能でないなら、ハッシュコードを生成してヒープ外に配置し、前記オブジェクトに関連付けるステップをさらに前記コンピュータに実行させる、請求項9に記載のプログラム。
- コンピュータの処理により、ヒープ領域に割り付けられたオブジェクトを識別するためのハッシュコードを生成するシステムであって、
前記ヒープ領域毎に、シード値を生成する手段と、
前記オブジェクトのアドレスと、前記オブジェクトが割り付けられているヒープ領域の前記シード値に基づき、前記ハッシュコードを生成する手段を有する、
システム。 - 前記ハッシュコードを生成する手段が、前記オブジェクトのアドレスと、前記シード値のみならず、前記オブジェクトのクラスのIDの値にも基づく、請求項11に記載のシステム。
- 前記シード値が擬似乱数によって生成される、請求項11に記載のシステム。
- 前記ヒープ領域が、相対的に新しいオブジェクトを割り付けるための第1のヒープ領域と、相対的に古いオブジェクトを割り付けるための第2のヒープ領域を有し、
前記第1のヒープ領域から前記第2のヒープ領域にオブジェクトが移動されることに応答して、前記オブジェクトにハッシュコードを付加することが可能かどうか判断する手段と、
前記オブジェクトにハッシュコードを付加することが可能であると判断されると、ハッシュコードを生成して、前記オブジェクトに追加する手段をさらに有する、請求項11に記載のシステム。 - 前記オブジェクトにハッシュコードを付加することが可能でないなら、ハッシュコードを生成してヒープ外に配置し、前記オブジェクトに関連付ける手段をさらに有する、請求項14に記載のシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012021187A JP5883300B2 (ja) | 2012-02-02 | 2012-02-02 | オブジェクトを特定するためのハッシュコードを生成するための方法、プログラム及びシステム |
US13/752,435 US9135169B2 (en) | 2012-02-02 | 2013-01-29 | Method, program and system for generating hash codes to identify objects |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012021187A JP5883300B2 (ja) | 2012-02-02 | 2012-02-02 | オブジェクトを特定するためのハッシュコードを生成するための方法、プログラム及びシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013161186A JP2013161186A (ja) | 2013-08-19 |
JP5883300B2 true JP5883300B2 (ja) | 2016-03-09 |
Family
ID=48903851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012021187A Expired - Fee Related JP5883300B2 (ja) | 2012-02-02 | 2012-02-02 | オブジェクトを特定するためのハッシュコードを生成するための方法、プログラム及びシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US9135169B2 (ja) |
JP (1) | JP5883300B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3200080B1 (en) * | 2015-12-16 | 2021-12-22 | Tata Consultancy Services Limited | Methods and systems for memory suspect detection |
CN111158590B (zh) * | 2019-12-17 | 2021-07-06 | 苏州浪潮智能科技有限公司 | 一种解决哈希冲突的方法和设备 |
US11271735B1 (en) * | 2020-08-26 | 2022-03-08 | Micron Technology, Inc. | Apparatuses, systems, and methods for updating hash keys in a memory |
US11755373B2 (en) | 2020-10-07 | 2023-09-12 | Oracle International Corporation | Computation and storage of object identity hash values |
CN112650645B (zh) * | 2020-12-24 | 2023-05-30 | 大连市共进科技有限公司 | 堆内存使用情况监测方法、装置和5g基站设备 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5542078A (en) * | 1994-09-29 | 1996-07-30 | Ontos, Inc. | Object oriented data store integration environment for integration of object oriented databases and non-object oriented data facilities |
GB9604522D0 (en) * | 1996-03-02 | 1996-05-01 | Univ Strathclyde | Databases |
US6233621B1 (en) * | 1996-04-30 | 2001-05-15 | Sun Microsystems, Inc. | System and method for space efficient hashcode allocation |
US6115782A (en) * | 1997-04-23 | 2000-09-05 | Sun Micosystems, Inc. | Method and apparatus for locating nodes in a carded heap using a card marking structure and a node advance value |
US6480862B1 (en) * | 1999-04-23 | 2002-11-12 | International Business Machines Corporation | Relation-based ordering of objects in an object heap |
US20010042204A1 (en) * | 2000-05-11 | 2001-11-15 | David Blaker | Hash-ordered databases and methods, systems and computer program products for use of a hash-ordered database |
US20060143454A1 (en) * | 2004-05-27 | 2006-06-29 | Silverbrook Research Pty Ltd | Storage of multiple keys in memory |
US7802232B2 (en) * | 2006-03-31 | 2010-09-21 | Microsoft Corporation | Software robustness through search for robust runtime implementations |
US20070234296A1 (en) * | 2006-03-31 | 2007-10-04 | Microsoft Corporation | Software variation for robustness through randomized execution contexts |
CN101473298A (zh) * | 2006-06-20 | 2009-07-01 | Nxp股份有限公司 | 随机数发生器系统、产生随机数的方法 |
JP5044816B2 (ja) * | 2007-09-06 | 2012-10-10 | インターナショナル・ビジネス・マシーンズ・コーポレーション | オブジェクトを記憶・管理するシステム |
US8612956B2 (en) * | 2007-12-05 | 2013-12-17 | International Business Machines Corporation | Efficient object profiling for optimizing object locality |
JP4852621B2 (ja) | 2009-03-03 | 2012-01-11 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラム中のオブジェクトの割り付け場所を追跡する方法、並びにそのコンピュータ・システム及びコンピュータ・プログラム |
US8161244B2 (en) * | 2009-05-13 | 2012-04-17 | Microsoft Corporation | Multiple cache directories |
US8386787B2 (en) * | 2009-08-31 | 2013-02-26 | Apple Inc. | Hash function using a heap modeling process |
TW201312980A (zh) * | 2011-05-03 | 2013-03-16 | Interdigital Patent Holdings | 在網際網路中內容識別、檢索及路由 |
-
2012
- 2012-02-02 JP JP2012021187A patent/JP5883300B2/ja not_active Expired - Fee Related
-
2013
- 2013-01-29 US US13/752,435 patent/US9135169B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US9135169B2 (en) | 2015-09-15 |
US20130204912A1 (en) | 2013-08-08 |
JP2013161186A (ja) | 2013-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5883300B2 (ja) | オブジェクトを特定するためのハッシュコードを生成するための方法、プログラム及びシステム | |
JP6087928B2 (ja) | 循環グラフにおけるオブジェクト寿命の管理 | |
US10506043B2 (en) | Rapid client-side component processing based on component relationships | |
US9767019B2 (en) | Pauseless garbage collector write barrier | |
US10002074B2 (en) | Non-intrusive storage of garbage collector-specific management data | |
CN102419770B (zh) | 文件共享系统及实现文件共享的方法、文件索引服务设备 | |
JP4952308B2 (ja) | メモリ共有システム、方法、及び、プログラム | |
CN104079613B (zh) | 用于多租户间共享应用程序对象的方法和系统 | |
US20070185834A1 (en) | Method and apparatus for optimistic locking using SQL select, update, delete, and insert statements | |
JP6163551B2 (ja) | ビットマップウインドウを用いて永続メモリにおけるオブジェクトを削除するためのシステムおよび方法 | |
WO2019020651A3 (fr) | Un système de communication et un procédé d'accès et de déploiement des microservices éphémères sur une plateforme hétérogène | |
US7991807B2 (en) | Method and system for garbage collection | |
CN106657439B (zh) | 网络地址转换映射表的操作方法及装置 | |
JP2004094935A (ja) | オブジェクト状態転送方法,オブジェクト状態転送装置およびオブジェクト状態転送プログラム並びにそのプログラムの記録媒体 | |
CA2707249C (en) | Native interface optimization for read-only arrays | |
JP6418419B2 (ja) | ハードディスクがアプリケーションコードを実行するための方法および装置 | |
JP5889270B2 (ja) | スタック・スキャンのコストを削減するための方法、プログラム及びシステム | |
CN107085681B (zh) | 鲁棒的计算设备标识框架 | |
JP6607044B2 (ja) | サーバー装置、分散ファイルシステム、分散ファイルシステム制御方法、および、プログラム | |
JP2014225077A (ja) | コンピュータにおいてオブジェクトを管理するための方法、プログラム及びシステム | |
JP4959781B2 (ja) | オブジェクト生成地点記録方法およびプログラム | |
JP6223002B2 (ja) | コンピュータにおけるオブジェクトの処理方法、プログラム及びシステム | |
JP2014007514A (ja) | 暗号化通信システム、鍵センタ装置、クライアント装置、暗号化方法およびプログラム | |
CN1298507A (zh) | 分布式系统中用于确定远程对象状态的方法和装置 | |
JP2011176468A (ja) | 名前解決装置、名前解決方法および名前解決プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140901 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150925 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150929 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151215 |
|
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: 20160112 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160205 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5883300 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |