Long-awaited 2.0.0 release that was scheduled on June 21st was released today in beta1.
You can download and try it out right now!! Just follow this link http://memory-mgr.sourceforge.net/?page_id=97
This release includes many-many enhancements so awaited by the library users. As a special bonus this release includes a Generic-STL library (http://sourceforge.net/projects/genericstl/) that provides basic containers and iterator classes which can be placed into the any memory which is exactly what many users where looking for.... read more
Long-awaited 2.0 release is scheduled on June 21st in beta and on June 29th in stable versions.
This release will include many-many enhancements so awaited by the library users. Some of them are:
* boost like shared_ptr and shared_array support by the library with capability to place them in any kind of memory, including shared memory.
* boost like inrusive_ptr pointer class with the small extra intrusive_base class. Use intrusive_base class a base class for your intrusively counted classes and you will get all the required method implemented for you in addition to a bonus of shared_from_this() method.
* boost like pool classes for extra fast allocations
* small objects allocation and low fragmentation optimizations are now integrated into the memory-mgr library itself, in the low_fragmentation_manager class
* optimized offset_ptr class which now words 10 times faster and not bound to the manager type, so it can store pointers to anywhere
* improved named memory objects support. It now has internal reference counting, so it is no longer required to handle it by yourself.
* enhanced new_/delete_ interface with embedded support for named objects.
* got rid of the pointer_convert decorator, now memory_mgr works with the pointers instead of the offsets.
* tons of the performance improvements and stability fixed contributed by different parties which made the library a production quality.
New features:
- Memory segment manager - provides fuctionality of self extensible memory segment
- Named objects allocation support
Fixed bugz:
- #1983057: offset pointer does not validate used memory manager
- #1989078: managed_base does not validate passed memory manager
- #1987919: chunks number and available memory calculated incorrectly
- #2009127 "Size tracking works incorrectly with nothrow allocation"
- #2021835 "deletion of null pointer brings assert failure"
Implemented feature requests:
- #1999606: move common decorator methods to decorator_base class
- #1987888: add field to mgr traits that stores mem overhead per block... read more
Performance improved on 300%
------------------------------------
Implemented feature requests:
- #1929433: Refactore implementation of shared memory allocators.
------------------------------------
Fixed bugz:
- #1983655: allocator class implementation is incorrect
- #1981817: It's impossible to use memory segment as first decorator
- #1981826: Heap and shared segments provides invalid manager_traits
- #1985090: vector_as_allocator works too slow
- #1986144: memory leaks in performance tests
- #1986138: alloc/dealloc tests implemented incorrectly
- #1986130: there is a lot of code duplications in performance tests
- #1985107: allocator does not validate memory manager type
Allocation performance was improved greatly!!! Now memory_manager works 3 times faster!!!
Now STL like allocator class is available as part of library, it works fine with VS2005, VS2008 and g++ 4.1 STL version
Source code documentation is available online now. Visit documentation page of project web site for more details.
Now documentation corresponds to the latest library source code.
Additionally following files were fully documented:
type_manip.h, new.h, pointer_convert.h, size_tracking.h, heap_segment.h, memory_segment.h, segment_traits.h, managed_base.h, singleton_manager.h, manager_traits.h, memory_manager.h and manager_category.h
Main achievements:
- a lot of source code comments was added
- fixed compiler errors on VC8 (VS2005)
- fixed issue with size_tracking decorator that brings memory corruption
- implemented unit test to catch memory corruptions made by size tracker decorator
- implemented overload of mem_mgr() function for singleton manager (to make life easier)
- added base_manager_type typedef to manager traits and decorator traits, this type represent manager type w/o decorator
- renamed do_delete into delete_ and do_delete_arr into delete_array
- improved unit tests for managed_base class, so now stored values are also checked
Draft version (0.1.0) of source code documentation was released. It is available from download page.
http://sourceforge.net/project/showfiles.php?group_id=208876&package_id=278014
Implementation of project's web-site backend almost is finished. It was an interesting exciting job for me.
Web site: http://memory-mgr.sourceforge.net/
So now I can focus on creation of documentation and planning of next library version
Finally build 1.0.0 had been released.
It contains all base functionality required for simple work. Library supports:
- memory allocation/deallocation
- size tracking of allocated blocks
- return value of allocate method can be offset in memory or direct pointer
- easy extendable memory segments
- has implemented heap and shared memory segments
- has offset_pointer class, a pointer-for-shared-memory
Implementation of unit tests for type manipulation library finished
size_tracking decorator was fully implemented to support allocate/deallocate with pointers and offsets
Added g++ support
New architecture
Added memory segments
Categorized managers and segments
Performance improved