JP5588072B2 - メモリ割り当て方法、プログラム、及びシステム - Google Patents
メモリ割り当て方法、プログラム、及びシステム Download PDFInfo
- Publication number
- JP5588072B2 JP5588072B2 JP2013532484A JP2013532484A JP5588072B2 JP 5588072 B2 JP5588072 B2 JP 5588072B2 JP 2013532484 A JP2013532484 A JP 2013532484A JP 2013532484 A JP2013532484 A JP 2013532484A JP 5588072 B2 JP5588072 B2 JP 5588072B2
- Authority
- JP
- Japan
- Prior art keywords
- class
- buffer
- memory space
- generating
- permitted
- 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 54
- 239000000872 buffer Substances 0.000 claims description 53
- 230000004044 response Effects 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
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)
Description
(1) Java(R)から、要求されるアドレス(address)とサイズ(size)で、JNIを実装するライブラリの処理系を呼び出す(Java(R)の処理系が実行する)。
(2) JNIEnv->NewDirectByteBuffer(address,size)を実行する(JNIを実装するライブラリ(C、C++)の処理系が実行する)。
(3) ByteBufferを生成するためのいくつかのJava(R)オブジェクトを生成し、その初期化を行うJava(R)の処理系を呼び出す。(JNIを実装するライブラリの処理系が実行する)
(4) 生成されたByteBufferをJNIを実装するライブラリの処理系に返す(Java(R)の処理系が実行する)。
(5) 返されたByteBufferをJava(R)の処理系に返す(JNIを実装するライブラリの処理系が実行する)。
(6) ByteBufferが利用可能になる。(Java(R)の処理系が実行する)
この個々のステップのオーバーヘッドが大きいので、全体のオーバーヘッドが非常に大きくなる。
また、用意するファントムByteBufferの数が多い際、各ByteBufferの生成の際に、指定される範囲を含むファントムByteBufferを特定するのにオーバーヘッドが高くなる場合がある。しかし、特定のファントムByteBufferに、要求されるアドレス、サイズで指定される範囲を含まないことが頻繁にある場合、そのファントムByteBufferを破棄することで、そのオーバーヘッドを軽減させることが可能である。
406・・・主記憶
408・・・ハードディスク・ドライブ
502・・・OS
504・・・JVM
506・・・アプリケーション・プログラム
802・・・ファントムByteBuffer
804・・・実ByteBuffer
806・・・実ByteBuffer
Claims (18)
- 絶対アドレスで、指定したメモリ空間へのアクセスを行うバッファのクラスをもち、さらに、該特別なクラスによって指定されたメモリ空間の一部をスライスして該クラスを生成する機能をもつ言語処理系上でプログラムを実行するシステムにおいて、前記指定したメモリ空間へのアクセスを行うクラスのバッファをコンピュータの処理によって生成する方法であって、
前記コンピュータの処理によって、前記言語処理系にアクセスが許可されていないメモリ空間を含んでいてもよい、前記クラスのバッファを生成するステップと、
利用が許可されたメモリ空間とサイズが指定されたことに応答して、前記コンピュータの処理によって、前記生成されたクラスの前記バッファをスライスすることによって、該利用が許可されたメモリ空間にアクセス可能なクラスのバッファを生成するステップを有する、
方法。 - 前記言語処理系にアクセスが許可されていない領域を含んでいてもよいメモリ空間に対して前記クラスのバッファを複数生成してアドレスとサイズを記録しておくステップをさらに有する、請求項1に記載の方法。
- 前記利用が許可されたメモリ空間にアクセス可能なクラスのバッファを生成するステップが、前記複数生成されてアドレスを記録されたクラスの前記バッファから、指定されたアドレスとサイズの示す範囲を含むバッファを見出してスライスする処理を含む、請求項2に記載の方法。
- 前記アドレスを含むクラスの所定のバッファを見出してスライスする処理が、前記アドレスを含む所定のバッファのクラスを見つけられないことに応答して、前記言語処理系にアクセスが許可されていないメモリ空間に対するアドレスを含む、クラスの追加のバッファ生成する処理を含む、請求項3に記載の方法。
- 前記言語処理系にアクセスが許可されていないメモリ空間を含んでいてもよい、前記クラスのバッファを生成するステップが、許容される最大のサイズでバッファを生成する、請求項1に記載の方法。
- 前記言語処理系がJava(R)であり、前記バッファのクラスがByteBufferであり、前記バッファのクラスを生成する処理がJNIインターフェースを呼び出して実行され、前記バッファのクラスを切り出す処理がposition()で開始点を指定し、limit()でサイズを指定した後に、slice()メソッドにより実行される、請求項1に記載の方法。
- 絶対アドレスで、指定したメモリ空間へのアクセスを行うバッファのクラスをもち、さらに、該特別なクラスによって指定されたメモリ空間の一部をスライスして該クラスを生成する機能をもつ言語処理系上でプログラムを実行するシステムにおいて、前記指定したメモリ空間へのアクセスを行うクラスのバッファをコンピュータの処理によって生成するプログラムであって、
前記コンピュータに、
前記言語処理系にアクセスが許可されていないメモリ空間を含んでいてもよい、前記クラスのバッファを生成するステップと、
利用が許可されたメモリ空間とサイズが指定されたことに応答して、前記生成されたクラスの前記バッファをスライスすることによって、該利用が許可されたメモリ空間にアクセス可能なクラスのバッファを生成するステップを実行させる、
プログラム。 - 前記言語処理系にアクセスが許可されていない領域を含んでいてもよいメモリ空間に対して前記クラスのバッファを複数生成してアドレスとサイズを記録しておくステップをさらに有する、請求項7に記載のプログラム。
- 前記利用が許可されたメモリ空間にアクセス可能なクラスのバッファを生成するステップが、前記複数生成されてアドレスを記録されたクラスの前記バッファから、指定されたアドレスとサイズの示す範囲を含むバッファを見出してスライスする処理を含む、請求項8に記載のプログラム。
- 前記アドレスを含むクラスの所定のバッファを見出してスライスする処理が、前記アド
レスを含む所定のバッファのクラスを見つけられないことに応答して、前記言語処理系にアクセスが許可されていないメモリ空間に対するアドレスを含む、クラスの追加のバッファ生成する処理を含む、請求項9に記載のプログラム。 - 前記言語処理系にアクセスが許可されていないメモリ空間を含んでいてもよい、前記クラスのバッファを生成するステップが、許容される最大のサイズでバッファを生成する、請求項7に記載のプログラム。
- 前記言語処理系がJava(R)であり、前記バッファのクラスがByteBufferであり、前記バッファのクラスを生成する処理がJNIインターフェースを呼び出して実行され、前記バッファのクラスを切り出す処理がposition()で開始点を指定し、limit()でサイズを指定した後に、slice()メソッドにより実行される、請求項7に記載のプログラム。
- 絶対アドレスで、指定したメモリ空間へのアクセスを行うバッファのクラスをもち、さらに、該特別なクラスによって指定されたメモリ空間の一部をスライスして該クラスを生成する機能をもつ言語処理系上でプログラムを実行するシステムにおいて、
前記言語処理系にアクセスが許可されていないメモリ空間を含んでいてもよい、前記クラスのバッファを生成する手段と、
利用が許可されたメモリ空間とサイズが指定されたことに応答して、前記生成されたクラスの前記バッファをスライスすることによって、該利用が許可されたメモリ空間にアクセス可能なクラスのバッファを生成する手段を有する、
システム。 - 前記言語処理系にアクセスが許可されていない領域を含んでいてもよいメモリ空間に対して前記クラスのバッファを複数生成してアドレスとサイズを記録しておく手段をさらに有する、請求項13に記載のシステム。
- 前記利用が許可されたメモリ空間にアクセス可能なクラスのバッファを生成する手段が、前記複数生成されてアドレスを記録されたクラスの前記バッファから、指定されたアドレスとサイズの示す範囲を含むバッファを見出してスライスする処理を実行する、請求項14に記載のシステム。
- 前記アドレスを含むクラスの所定のバッファを見出してスライスする処理が、前記アドレスを含む所定のバッファのクラスを見つけられないことに応答して、前記言語処理系にアクセスが許可されていないメモリ空間に対するアドレスを含む、クラスの追加のバッファ生成する処理を実行する、請求項15に記載のシステム。
- 前記言語処理系にアクセスが許可されていないメモリ空間を含んでいてもよい、前記クラスのバッファを生成する手段が、許容される最大のサイズでバッファを生成する、請求項13に記載のシステム。
- 前記言語処理系がJava(R)であり、前記バッファのクラスがByteBufferであり、前記バッファのクラスを生成する処理がJNIインターフェースを呼び出して実行され、前記バッファのクラスを切り出す処理がposition()で開始点を指定し、limit()でサイズを指定した後に、slice()メソッドにより実行される、請求項13に記載のシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013532484A JP5588072B2 (ja) | 2011-09-09 | 2012-07-06 | メモリ割り当て方法、プログラム、及びシステム |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011197051 | 2011-09-09 | ||
JP2011197051 | 2011-09-09 | ||
JP2013532484A JP5588072B2 (ja) | 2011-09-09 | 2012-07-06 | メモリ割り当て方法、プログラム、及びシステム |
PCT/JP2012/067326 WO2013035420A1 (ja) | 2011-09-09 | 2012-07-06 | メモリ割り当て方法、プログラム、及びシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5588072B2 true JP5588072B2 (ja) | 2014-09-10 |
JPWO2013035420A1 JPWO2013035420A1 (ja) | 2015-03-23 |
Family
ID=47830902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013532484A Expired - Fee Related JP5588072B2 (ja) | 2011-09-09 | 2012-07-06 | メモリ割り当て方法、プログラム、及びシステム |
Country Status (5)
Country | Link |
---|---|
US (1) | US20130067190A1 (ja) |
EP (1) | EP2755129B8 (ja) |
JP (1) | JP5588072B2 (ja) |
CN (1) | CN103782273A (ja) |
WO (1) | WO2013035420A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9697220B2 (en) | 2013-12-13 | 2017-07-04 | Oracle International Corporation | System and method for supporting elastic data metadata compression in a distributed data grid |
US9424147B2 (en) | 2013-12-13 | 2016-08-23 | Oracle International Corporation | System and method for supporting memory allocation control with push-back in a distributed data grid |
WO2018164700A1 (en) | 2017-03-10 | 2018-09-13 | Visa International Service Association | Techniques for in-memory data searching |
US11243876B2 (en) | 2019-11-06 | 2022-02-08 | Oracle International Corporation | Techniques for accessing off-heap memory |
CN113835989A (zh) * | 2020-06-08 | 2021-12-24 | 武汉斗鱼鱼乐网络科技有限公司 | 一种性能统计方法和装置 |
CN117251120B (zh) * | 2023-11-17 | 2024-03-01 | 杭州乒乓智能技术有限公司 | 基于jvm堆外内存的对账系统优化方法、装置、设备及介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1248465C (zh) * | 2002-11-01 | 2006-03-29 | 华为技术有限公司 | 网络通信中数据发送/接收缓冲区的管理方法 |
US7720802B2 (en) * | 2007-01-03 | 2010-05-18 | International Business Machines Corporation | Reclaiming resident buffers when a reclaim threshold has been exceeded by swapping the oldest in use buffer and a new buffer, and referencing the new buffer via an updated set of read and write pointers |
CN101714096A (zh) * | 2009-12-02 | 2010-05-26 | 浙江中控技术股份有限公司 | 一种配置信息更新方法和装置 |
-
2012
- 2012-07-06 WO PCT/JP2012/067326 patent/WO2013035420A1/ja active Application Filing
- 2012-07-06 CN CN201280043905.6A patent/CN103782273A/zh active Pending
- 2012-07-06 EP EP12829322.2A patent/EP2755129B8/en not_active Not-in-force
- 2012-07-06 JP JP2013532484A patent/JP5588072B2/ja not_active Expired - Fee Related
- 2012-09-07 US US13/606,513 patent/US20130067190A1/en not_active Abandoned
Non-Patent Citations (2)
Title |
---|
JPN6012039075; 栗原傑享: 'DirectByteBufferのView' [online] [2012年7月20日検索], 20061201 * |
JPN6012039076; 青柳龍也: 'Java 2 SDK 1.4' Java WORLD 第6巻,第6号, 20020601, p.36-50, (株)IDGジャパン * |
Also Published As
Publication number | Publication date |
---|---|
EP2755129A1 (en) | 2014-07-16 |
WO2013035420A1 (ja) | 2013-03-14 |
EP2755129A4 (en) | 2014-07-30 |
EP2755129B8 (en) | 2017-02-22 |
EP2755129B1 (en) | 2016-10-12 |
CN103782273A (zh) | 2014-05-07 |
US20130067190A1 (en) | 2013-03-14 |
JPWO2013035420A1 (ja) | 2015-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5588072B2 (ja) | メモリ割り当て方法、プログラム、及びシステム | |
US10268588B2 (en) | Methods of cache preloading on a partition or a context switch | |
US9529611B2 (en) | Cooperative memory resource management via application-level balloon | |
US7925818B1 (en) | Expansion of virtualized physical memory of virtual machine | |
JP5235989B2 (ja) | 仮想マシンのメモリを管理するためのシステム、方法、及びコンピュータ・プログラム | |
JP6943954B2 (ja) | コンテナに基づくgpu仮想化方法及びシステム | |
US20130132953A1 (en) | Method and System for Providing Application by Virtual Machine and Computer-Readable Storage Medium to Execute the Method | |
CA2810782C (en) | Managing memory across a network of cloned virtual machines | |
US11010355B2 (en) | Layer-based file access method and apparatus of virtualization instance | |
JP2019523920A (ja) | ページ・フォールト解決法 | |
JP2008108260A (ja) | コンピュータ・システム上のハイパーバイザ内にポリシ・ベースのオペレーティング・システム・サービスを提供する方法、コンピュータ・システム及びコンピュータ・プログラム | |
KR20090079012A (ko) | 가상 머신의 상태를 저장, 복원하는 방법 및 장치 | |
US20060070065A1 (en) | Memory support for heterogeneous virtual machine guests | |
JP2021502637A (ja) | コンピューティング環境内の処理を促進するためのコンピュータ・プログラム、コンピュータ・システムおよび方法 | |
Min et al. | Vmmb: Virtual machine memory balancing for unmodified operating systems | |
US7689971B2 (en) | Method and apparatus for referencing thread local variables with stack address mapping | |
JP2008107966A (ja) | 計算機システム | |
JP5379779B2 (ja) | コンピュータにおけるオブジェクトの処理方法、プログラム及びシステム | |
US10423526B2 (en) | Method, program, and system for reducing the cost of stack scanning | |
US7444636B2 (en) | Method and system of determining attributes of a functional unit in a multiple processor computer system | |
US20210326253A1 (en) | Computer memory management in computing devices | |
Pinter et al. | Improving machine virtualisation with'hotplug memory' | |
JP6173031B2 (ja) | コンピュータにおいてオブジェクトを管理するための方法、プログラム及びシステム | |
JP6103994B2 (ja) | 文字列データ処理方法、プログラム及びシステム | |
Akkaya | Message from the demonstrations chair |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140610 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140618 |
|
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: 20140708 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140724 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5588072 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |