Menu

Code Commit Log


Commit Date  
[r557] by --none--

This commit was manufactured by cvs2svn to create tag 'V2_212'.

2016-11-27 14:56:47 Tree
[r556] by obarthel

c.lib 1.212 (27.11.2016)

- Unused slabs which get recycled are no longer reinitialized from
scratch if their chunk size matches what the allocator needed.
If the chunk size matches, the list of available chunks is
left unchanged, and just the various counters are reset.

- Added __get_slab_stats() function.

- Added support for global __slab_purge_threshold tuning variable.

2016-11-27 14:56:46 Tree
[r555] by obarthel

- malloc-test was linked against the wrong object file. Fixed.

- Added a short test program for the slab allocator.

2016-11-27 14:55:40 Tree
[r554] by obarthel

- These were accidentally omitted from version 1.211

2016-11-24 09:04:57 Tree
[r553] by --none--

This commit was manufactured by cvs2svn to create tag 'V1_211'.

2016-11-23 17:09:30 Tree
[r552] by obarthel

c.lib 1.211 (23.11.2016)

- Added more consistency checking to the slab allocator, which is
built if DEBUG is defined in "stdlib_slab.c".

- Memory allocations are no longer guaranteed to be aligned to
64 bit word boundaries. In fact, this has not even worked
reliably in the past 10 years.

- Memory allocation request sizes are now rounded to multiples of
32 bit words (the size of an address pointer) instead to the
size of a 64 bit word.

- Reduced the memory footprint of the memory allocation management
data structures by reusing the most significant bit of the
memory allocation size. This allows many more allocations to fit
into the 32 byte chunk slabs, but limits the maximum memory
allocation size to a little less than 2 GBytes.

- Added integer overflow checks to the memory management code.

- Reduced the memory management overhead further. This cuts an
additional 8 bytes per allocation, unless neither the slab
allocator nor memory pools are available. With this reduction
the slab allocator is able to use 16 byte chunks, which cover
memory allocation requests of 1..8 bytes.

- Fixed a bug caused by returning an allocation back to a slab
which passed the wrong pointer.

2016-11-23 17:09:29 Tree
[r551] by --none--

This commit was manufactured by cvs2svn to create tag 'V1_210'.

2016-11-22 17:24:55 Tree
[r550] by obarthel

c.lib 1.210 (22.11.2016)

- Added __get_slab_allocations() function which will report information
about each memory allocation made by the slab allocator which does
not come from a slab.

- If the first slab in the list of slabs which share the same chunk
size has no more room, it means that all other slabs following
it have no room either. This speeds up the test to find a slab with
free space, which can now abort and directly proceed to allocate
memory for a new slab.

- If an empty slab's decay count hits zero, it is moved to the front
of the empty slab list to be reclaimed more quickly.

- Allocations made from the slab now carry a pointer back to the
slab which they are a part of. This speeds up deallocation but
has the downside of making the smallest usable slab chunk size
64 bytes, which is double what used to be the minimum before.

2016-11-22 17:24:54 Tree
[r549] by obarthel

- Updated to match SVN repository contents.

- Added malloc-test

2016-11-22 17:23:50 Tree
[r548] by --none--

This commit was manufactured by cvs2svn to create tag 'V1_209'.

2016-11-21 11:32:23 Tree
Older >
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.