Patent ID: 7783852
Filing Date: 2010-08-24
Classification: G06F

Abstract:
1. A method for managing computer memory that is allocated among at least a first memory pool and a second memory pool, the method comprising the computer-implemented steps of: generating first data that indicates a hit rate per pool size for different pool sizes of each memory pool of said first memory pool and said second memory pool; wherein said first memory pool is used to satisfy a first class of memory request, wherein said second memory pool is used to satisfy a second class of memory request, and wherein the first class of memory request is a different class of memory request than said second class of memory request; converting said first data to a second data, wherein the second data indicates performance penalties for said different pool sizes of said each memory pool; wherein the performance penalties for the first memory pool account for a measured cost of a miss when satisfying the first class of memory request, and wherein the performance penalties for the second memory pool account for a measured cost of a miss when satisfying the second class of memory request; determining, based at least in part on said second data that indicates the performance penalties for said different pool sizes of said each memory pool, a distribution of said computer memory comprising a combination of pool sizes that optimize performance of said computer memory, wherein the combination comprises: automatically allocating portions of said computer memory to each of said memory pools based at least in part on said determining the distribution of said computer memory that optimizes the performance; wherein said at least the first memory pool and the second memory pool includes a third memory pool that functions as a source of memory for executing processes; in response to a request from a first process for use of memory from said third memory pool, allocating to said third memory pool a first portion of memory from one or more memory pools of said first memory pool and said second memory pool, wherein the allocating the first portion of memory comprises: wherein the method is performed by one or more computing devices.