OVERCOMING COMPILATION BUFFER OVERLOADS IN VIRTUAL MACHINES
First Claim
Patent Images
1. A device configured to dynamically adjust size of a buffer, comprising:
- a memory unit, comprising;
compiler module including a buffer;
buffer monitor module that monitors for an overload condition in the compiler module;
overload detector module that determines type of overload condition in the compiler module based at least in part on information from the buffer monitor module; and
buffer shaper module that dynamically adjusts size of the buffer in the compiler module based at least in part on information from the overload detector module; and
a processor coupled to the memory unit and programmed with at least the compiler module, the buffer monitor module, the overload detector module, and the buffer shaper module.
1 Assignment
0 Petitions
Accused Products
Abstract
Apparatuses and methods that allow a virtual machine on a device to overcome method cache overloads in dynamic just-in-time (JIT) compilation are disclosed. The apparatuses and methods dynamically adjust the size of a buffer caching compiled native code according to the effective run-time behavior of running applications on the device. Modules in the device monitor the method calls associated with the buffer to detect non-performance-critical and performance-critical overload conditions. The size of the buffer is increase, decreased, or not changed accordingly.
16 Citations
27 Claims
-
1. A device configured to dynamically adjust size of a buffer, comprising:
-
a memory unit, comprising; compiler module including a buffer; buffer monitor module that monitors for an overload condition in the compiler module; overload detector module that determines type of overload condition in the compiler module based at least in part on information from the buffer monitor module; and buffer shaper module that dynamically adjusts size of the buffer in the compiler module based at least in part on information from the overload detector module; and a processor coupled to the memory unit and programmed with at least the compiler module, the buffer monitor module, the overload detector module, and the buffer shaper module. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method for adjusting size of a buffer in a compiler module, comprising:
-
(a) monitoring particular method calls associated with the buffer in the compiler module occurring over a particular period of time to identify an overload condition, wherein the particular method calls monitored comprise a request to add information to the buffer and a request to remove information from the buffer; (b) detecting a type of overload condition in the compiler module using a count-and-threshold mechanism that is capable of detecting a plurality of types of overload conditions, wherein the types of overload conditions comprise a non-performance-critical overload condition, a performance-critical overload condition, and a no overload condition; (c) generating an indication corresponding to the type of overload condition in the compiler module; and (d) decreasing size of the buffer if the indication corresponds to the no overload condition. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A computer-readable medium storing computer-executable instructions for performing a method comprising:
-
(a) monitoring particular method calls associated with a buffer in a compiler module to identify an overload condition; (b) detecting a type of overload condition in the compiler module; (c) increasing size of the buffer if the type of overload condition in the compiler module corresponds to a performance-critical overload condition; (d) decreasing size of the buffer if the type of overload condition in the compiler module corresponds to a no overload condition; and (e) not changing size of the buffer if the type of overload condition in the compiler module corresponds to the non-performance-critical overload condition. - View Dependent Claims (19, 20)
-
-
21. A method of dynamically allocating size of a buffer in a mobile terminal, comprising:
-
(a) monitoring an effective run-time behavior of an application running on the mobile terminal; and (b) adjusting the size of the buffer in the mobile terminal based on (a), wherein the buffer caches compiled native machine code. - View Dependent Claims (22, 23, 24)
-
-
25. A device configured to dynamically adjust size of a buffer, comprising:
-
a memory unit, comprising; compiler module including a buffer; means for monitoring for an overload condition in the compiler module; means for determining type of overload condition in the compiler module based at least in part on information from the buffer monitor module; and means for dynamically adjusting size of the buffer in the compiler module based at least in part on information from the overload detector module; and a processor coupled to the memory unit and programmed with at least the compiler module, the buffer monitor module, the overload detector module, and the buffer shaper module. - View Dependent Claims (26, 27)
-
Specification