incubator-directmemory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Benoit Perroud (Commented) (JIRA)" <>
Subject [jira] [Commented] (DIRECTMEMORY-40) Pointers merging with adjacent free pointers when freeing.
Date Wed, 28 Dec 2011 18:10:30 GMT


Benoit Perroud commented on DIRECTMEMORY-40:

I agree with the "transactionality" or the atomicity of the operation, but this can be guarantee
with either synchronous blocks or functions as the previous implementation did, or using java.util.concurrent
primitives like I did with j.u.c.Lock.
More over, in my implementation allocation of a new pointer is O(log(n)) : finding the next
free pointer is O(1), removing from both free list is O(log(n)) according to the ConcurrentSkipListMap.
Freeing a pointer is O(log(n)) because the insertion of the free pointers to the two free
The previous implementation was O(1) for freeing the pointer, but O(n) for allocation.
> Pointers merging with adjacent free pointers when freeing.
> ----------------------------------------------------------
>                 Key: DIRECTMEMORY-40
>                 URL:
>             Project: Apache DirectMemory
>          Issue Type: Improvement
>            Reporter: Benoit Perroud
>         Attachments:,,
> If one allocates lot of small objects till the buffer is full, and then free those objects,
pointers are never merged together to allow further creation of bigger objects.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message