Demand-based memory-block splitting

   
   

A computer system (10) implements a memory allocator that employs a data structure (FIG. 3) to maintain an inventory of dynamically allocated memory available to receive new data. It receives from one or more programs requests that it allocate memory from a dynamically allocable memory "heap." It responds to such requests by performing the requested allocation and removing the thus-allocated memory block from the inventory. Conversely, it adds to the inventory memory blocks that the supported program or programs request be freed. In the process, it monitors the frequencies with which memory blocks of various sizes are allocated, and it projects from those frequencies future demand for memory blocks of those sizes. To split a relatively large block in order to meet an actual or expected request for a smaller block, it bases its selection of the larger block to be split on whether the supply of free blocks of the larger block's size is great enough to meet the expected demand for such blocks. Splitting occurs both preemptively, i.e., before a request for the result of the splitting, and reactively, i.e., in response to a previously made request for a block that will result from the splitting operation.

Система компьютера (10) снабжает allocator памяти использует структуру данных (FIG 3) для поддержания инвентаря dynamically размещанной имеющейся памяти получить новые данные. Она получает от one or more программ спрашивает что она размещает память от dynamically allocable памяти "вороха." Она отвечает к таким запросам путем выполнять спрошенное распределение и извлекать таким образом-razme5anny1 блок памяти от инвентаря. Наоборот, она добавляет к блокам памяти инвентаря, чтобы были освобожены поддержанные программа или программы спрашивают. В процессе, она контролирует частоты с которыми размещаны блоки памяти различных размеров, и она проектирует от требования тех частот будущего для блоков памяти тех размеров. Для того чтобы разделить относительно большой блок для того чтобы соотвествовать фактический или предпологаемый запрос для более малого блока, она основывает свой выбор более большого блока, котор нужно разделить дальше ли поставка свободно блоков более большого размера блока больш достаточно соотвествовать предположенный для таких блоки. Разделять происходит оба preemptively, т.е., прежде чем запрос для результата разделять, и реактивно, т.е., in response to ранее сделанный запрос для блока который приведет к от разделяя деятельности.

 
Web www.patentalert.com

< Application performance monitoring expert

< Disabling tool execution via roles

> Privacy service

> System and method for providing an application navigator client menu side bar

~ 00136