|
Boost : |
From: Joel Hock (joel_at_[hidden])
Date: 2023-06-21 23:48:50
951ca5725 changed malloc_need_resize() to use set_next_size(), which
sets start_size in addition to setting next_size. this causes repeated use
of purge_memory() to allocate 2x size after every use. as illustration:
>>>>>>>>>>>>>>>>>
#include <boost/pool/pool.hpp>
int main()
{
boost::pool pool(8);
for(int i = 0; i < 10; i++) {
printf("%d %ld\n", i, pool.get_next_size());
pool.purge_memory();
void *ptr = pool.malloc();
(void)ptr;
}
}
<<<<<<<<<<<<<<<<<
before the commit the output is:
0 32
1 64
2 64
3 64
4 64
5 64
6 64
7 64
8 64
9 64
after the commit, the output is:
0 32
1 64
2 128
3 256
4 512
5 1024
6 2048
7 4096
8 8192
9 16384
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk