Date: Sun, 1 Dec 2013 11:55:12 +0100 From: Daniel Nebdal <dnebdal@gmail.com> To: dt71@gmx.com Cc: jb <jb.1234abcd@gmail.com>, Adrian Chadd <adrian@freebsd.org>, freebsd-current <freebsd-current@freebsd.org>, Luigi Rizzo <rizzo@iet.unipi.it> Subject: Re: [RFC] how to get the size of a malloc(9) block ? Message-ID: <CA%2Bt49PJrbbtyaGX2KQm7L0fhzkhU9Cmxi3sehm79NyAChMeBjA@mail.gmail.com> In-Reply-To: <529AA73A.9@gmx.com> References: <CA%2BhQ2%2BgK1pc_aS1LEKp29Bi=MHFtJCkw2uOrib_9wQ-7AziH=w@mail.gmail.com> <loom.20131130T002152-608@post.gmane.org> <CA%2BhQ2%2Bj0cYW0dfhEtMGRXWhXhS=VF_N_ZB=JmcqRUofFKWXFiQ@mail.gmail.com> <CAJ-Vmon2dy94jCUwrBjObrxahmaTyqYZJZo4Lren2Km_vX3_OA@mail.gmail.com> <CA%2BhQ2%2Bi7woEM9x7Ymo%2BD4FbG2rn0eRYnX=7mUTrPjDqj-pme7A@mail.gmail.com> <20131201022002.GE55638@funkthat.com> <529AA73A.9@gmx.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Dec 1, 2013 at 4:04 AM, <dt71@gmx.com> wrote: > John-Mark Gurney wrote, On 12/01/2013 03:20: > > Either it happens rarely, and always doing a realloc won't hurt >> performance, or it happens often, and then you should be using a larger >> buffer in the first place.. >> > > What if a size-elastic implementation of a dynamic data structure would be > able to adjust to the malloc implementation, such as agreeing to allocate > regions of size (2^k - 8)? Much like the use of getpagesize() (yes, I know > it's not part of a technical standard). > > That could alternatively be solved by having an "if I ask for N bytes right now, how large would the block be" - API that doesn't promise too much. Call it something like "malloc_suggest_size(size_t minsize) ", and make the description something like ... "return the largest number of bytes that would not allocate a larger block of memory than the provided minsize, in the current memory situation", plus some veiled threats about not using this value to do anything fancy with pointers to already-allocated memory. -- Daniel Nebdal
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA%2Bt49PJrbbtyaGX2KQm7L0fhzkhU9Cmxi3sehm79NyAChMeBjA>