Patent ID: 9063668
Filing Date: 2015-06-23
Classification: G06F

Abstract:
1. A method implemented by data processing apparatus, the method comprising: executing a process on the data processing apparatus wherein the process comprises a plurality of threads and a global memory manager, wherein the global memory manager is configured to process requests from threads of the plurality of threads to allocate and deallocate memory blocks within the process; identifying a consumer thread of the plurality of threads wherein the consumer thread allocates more memory blocks using the global memory manager than the thread deallocates using the global memory manager, wherein a difference between measures of memory block allocation and deallocation for the consumer thread is beyond a first threshold, wherein identifying the consumer thread comprises: identifying a different producer thread of the plurality of threads wherein the producer thread deallocates more memory blocks using the global memory manager than the thread allocates using the global memory manager, wherein a difference between measures of memory block deallocation and allocation for the producer thread is beyond a second threshold; based on identifying the consumer and producer threads, establishing a first channel between the consumer thread and the producer thread through which references to deallocated memory blocks of the producer thread can be sent to the consumer thread; configuring the producer thread to subsequently deallocate memory blocks by sending references to the memory blocks to the consumer thread using the first channel instead of using the global memory manager to deallocate the memory blocks; and configuring the consumer thread to subsequently allocate memory blocks using the references to the memory blocks provided on the first channel by the producer thread instead of using the global memory manager to allocate the memory blocks.