comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Bug in GNAT? - Max_size_in_storage_elements insufficient
Date: Tue, 18 Oct 2016 18:03:41 +0200
Date: 2016-10-18T18:03:41+02:00	[thread overview]
Message-ID: <nu5h4v$p7h$1@gioia.aioe.org> (raw)
In-Reply-To: nu5ev1$lgp$1@gioia.aioe.org

On 2016-10-18 17:26, Vratislav Podzimek wrote:
> On Tue, 18 Oct 2016 14:35:15 +0200, Dmitry A. Kazakov wrote:
>
>> On 18/10/2016 13:17, Vratislav Podzimek wrote:
>>
>>> Or am I missing something?
>>
>> A storage pool requires additional space to organize its structure and
>> maintain its state. Depending on the method it is usually impossible to
>> estimate the exact number of object  the pool may hold. It depends on
>> the individual sizes of the objects, the history of object's allocation
>> and deallocation, the history of claiming the memory for the parts of
>> the pool from the OS (a pool can be segmented).
>
> Well, then it's at least a bug in [Barnes] because there's an example
> like the above ones just with a simpler type. But I still think the idea
> here is/was to provide enough space for N items of some type.

I am not sure if that were technically possible. Considering an 
implementation of, for example, a marked-margins pool, the penalty to 
have a guarantee would be extremely high.

> That's what
> the 'Max_size_in_storage_elements' attribute should be good for. And
> there's no fragmentation nor history of allocation/deallocation in my
> case.

You don't know the implementation of. A segmented pool may request 
system memory on demand adapting the size of segments to the allocation 
requests: Max (Chunk size, Requested size).

> If I specify I want space for 4 records, I should get space for 4
> records. Not slightly less due to some hidden, unpredictable overhead.

If you know the pool size in advance and the objects in it, why don't 
you use a custom pool backed by an array? An arena pool would be exactly 
for this and trivial to implement in Ada.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


  reply	other threads:[~2016-10-18 16:03 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-18 11:17 Bug in GNAT? - Max_size_in_storage_elements insufficient Vratislav Podzimek
2016-10-18 12:35 ` Dmitry A. Kazakov
2016-10-18 15:26   ` Vratislav Podzimek
2016-10-18 16:03     ` Dmitry A. Kazakov [this message]
2016-10-19  1:39       ` Luke A. Guest
2016-10-19  7:33         ` Dmitry A. Kazakov
2016-10-20  0:59         ` Randy Brukardt
2016-10-19 15:45     ` Eryndlia Mavourneen
2016-10-19 15:53     ` Eryndlia Mavourneen
2016-10-19 13:34 ` Egil H H
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox