comp.lang.ada
 help / color / mirror / Atom feed
From: Vadim Godunko <vgodunko@gmail.com>
Subject: Re: GNAT's stack checking in Ubuntu 9.04 (and Shootout regex-dna)
Date: Tue, 4 Aug 2009 05:30:07 -0700 (PDT)
Date: 2009-08-04T05:30:07-07:00	[thread overview]
Message-ID: <2b246c40-ef58-4845-8940-5c9ec176a292@24g2000yqm.googlegroups.com> (raw)
In-Reply-To: 4a781100$0$30236$9b4e6d93@newsspool1.arcor-online.net

On Aug 4, 2:44 pm, Georg Bauhaus <rm.dash-bauh...@futureapps.de>
wrote:
> It hits the limit exaclty when the array of 625_000
> default initialized Vstrings is allocated on the stack.
> No operations performed at that point.
>
> > Unbounded_String uses constant size of stack for object itself and
> > uses dynamic size on heap for actual value.
>
> Yes. How much does a default initialized Unbounded_String
> use when it is an array component? (I'll debug this when
> there is more time; just in case you happen to know,
> would be most helpful.)
>
Its very easy to discover:

with Ada.Strings.Unbounded; use Ada.Strings.Unbounded;
package Tst is
   type T is array (Positive range <>) of Unbounded_String;
   X : T (1 .. 625_000);
end Tst;

> gcc -c -gnatR3 tst.ads

Representation information for unit Tst (spec)
----------------------------------------------

for T'Alignment use 16;
for T'Component_Size use 512;

for X'Size use 320000000;
for X'Alignment use 16;

So, on my platform (OpenSUSE Linux/x86_64) array of Unbounded_String
with 625_000 components occupy approximately 40Mb.



  reply	other threads:[~2009-08-04 12:30 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-03 22:54 GNAT's stack checking in Ubuntu 9.04 (and Shootout regex-dna) Georg Bauhaus
2009-08-03 22:56 ` Georg Bauhaus
2009-08-04  7:50   ` Ludovic Brenta
2009-08-04  9:17     ` Georg Bauhaus
2009-08-04  9:58       ` Vadim Godunko
2009-08-04 10:44         ` Georg Bauhaus
2009-08-04 12:30           ` Vadim Godunko [this message]
2009-08-04 14:15             ` Georg Bauhaus
2009-08-04 22:20         ` Egil
2009-08-04 15:38       ` Robert A Duff
2009-08-04 11:59 ` Brian Drummond
2009-08-04 14:18   ` Georg Bauhaus
2009-08-09 19:13   ` Georg Bauhaus
2009-08-10 13:10     ` jonathan
2009-08-10 20:12     ` jonathan
2009-08-10 20:29       ` Ludovic Brenta
2009-08-10 23:34       ` Georg Bauhaus
2009-08-11 20:02         ` jonathan
2009-08-11 21:19           ` jonathan
2009-08-11 21:38           ` Georg Bauhaus
2009-08-11  0:27       ` Georg Bauhaus
2009-08-11 19:05         ` jonathan
2009-08-12  9:32           ` Ludovic Brenta
2009-08-12 16:37             ` jonathan
replies disabled

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