IP Library › Granted Patent US 11,416,392
Granted Patent B2
US 11,416,392 · App. 16/447,790 · Granted Aug 16, 2022

Arena-based memory management

Inventors: Peter Franz Valentin Sollich (Bavaria, DE); Robert Lovejoy Goodwin (Mercer Island, WA); Charles Ryan Salada (Seattle, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F12/0276G06F12/0815G06F2212/1044
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,416,392
App. No.
16/447,790
Granted
Aug 16, 2022
Kind
B2
Abstract

An arena-based memory management system is disclosed. In response to a call to reclaim memory storing a group of objects allocated in an arena, an object not in use of the group of objects allocated in the arena is collected. A live object of the plurality of objects is copied from the arena to a heap.

Claims (28)

1. A method of controlling an arena-based memory management system, the method comprising:

in response to a program statement of a program running in a framework, creating an arena in memory wherein the framework allocates a plurality of objects into the arena in memory, the arena reclaimable after a programmed deallocation, the memory including the arena and a segment for collected managed objects automatically allocated by the framework; and

in response to a call from the program to reclaim memory storing a plurality of objects allocated in the arena, deallocating the arena, copying a live object of the plurality of objects from the arena to the segment for collected managed objects prior to deallocating the arena, and collecting with the framework an object of the plurality of objects not in use in the arena.

2. The method of claim 1 comprising disposing the arena in response to the call.

3. The method of claim 1 wherein the segment for collected managed objects includes a heap, and the heap is served by a garbage collection.

4. The method of claim 3 wherein the garbage collection is a generational garbage collection.

5. The method of claim 1 wherein the call to reclaim memory includes a dispose method.

6. The method of claim 1 wherein the call to reclaim memory includes reclaiming the arena.

7. The method of claim 6 wherein the call to reclaim memory further includes a garbage collection.

8. The method of claim 1 wherein the copying a live object further includes copying objects referenced from the live object.

9. The method of claim 1 comprising using reference counting if the arena is being used for allocation.

10. The method of claim 1 wherein the segment for collected managed objects includes a heap, and the plurality of objects point to objects in the heap.

11. An arena-based memory management system, comprising:

a memory device to store a set of instructions; and

a processor to execute the set of instructions to:

in response to a program statement of a program running in a framework, create an arena in memory, allocate with the framework a plurality of objects into the arena in memory, the arena reclaimable after a programmed deallocation, the memory including the arena and a segment for collected managed objects automatically allocated by the framework; and

in response to a call from the program to reclaim memory storing a plurality of objects allocated in the arena, collect with the framework an object of the plurality of objects not in use in the arena, deallocate the arena, and copy a live object of the plurality of objects from the arena to the segment for collected managed objects prior to deallocating the arena.

12. The system of claim 11 wherein the segment for collected managed objects is served by a generational garbage collector.

13. The system of claim 11 wherein the segment for collected managed objects includes a heap, and objects in the heap having pointers to the object not in use in the arena are collected in the response to the call to reclaim memory.

14. The system of claim 11 wherein the response to a call to reclaim memory includes a garbage collection.

15. The system of claim 11 wherein multiple threads allocate in the arena.

16. The system of claim 15 wherein each thread includes a stack of allocators.

17. A computer readable device to store computer readable instructions to control a processor to control an arena-based memory, the instructions comprising:

in response to a program statement of a program running in a framework, create an arena in memory, allocate with the framework a plurality of objects into an arena in memory, the arena reclaimable after a programmed deallocation, the memory including the arena and a segment for collected managed objects, automatically allocated by the framework; and

in response to a call from the program to reclaim memory storing a plurality of objects allocated in the arena, collect with the framework an object of the plurality of objects not in use in the arena, deallocate the arena, and copy a live object of the plurality of objects from the arena to the segment for collected managed objects prior to deallocating the arena.

18. The computer readable device of claim 17 comprising instructions for a dispose method to reclaim memory.

19. The computer readable device of claim 17 comprising instructions for an activate method to allocate in the arena.

20. The computer readable device of claim 17 wherein the instructions to collect the object not in use in the arena includes instruction to perform a cleanup task.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2019
From: SOLLICH, PETER FRANZ VALENTIN; GOODWIN, ROBERT LOVEJOY; SALADA, CHARLES RYAN
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 049544/0138 →
Continuity (1)
Related Publication 20200401517A1 · Dec 24, 2020