From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: Have the Itanium critics all been proven wrong?
Date: Tue, 21 Aug 2012 18:32:18 -0400
Date: 2012-08-21T18:32:18-04:00 [thread overview]
Message-ID: <wccboi3ri4t.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: a9iagtF1rqU1@mid.individual.net
Niklas Holsti <niklas.holsti@tidorum.invalid> writes:
> As far as I know, the only Ada systems with automatic garbage collection
> are those that compile Ada to Java byte-code and run on the JVM.
Or .NET.
>...I have
> heard that some people have used the Boehm "conservative" GC with Ada,
> but I'm not sure if it works reliably (because some Ada compilers play
> tricks with array base addresses).
I have used the Boehm GC with Ada compiled with GNAT. It works.
But I wouldn't use it in a real-time/embedded/safety-critical
program.
Boehm GC doesn't work very well if the amount of memory you use
is a large fraction of the virtual address space. This is because
of the way "blacklisting" works. If the GC runs across the value
12345000, which might be a pointer to a heap object, it checks whether
something has been allocated at that address. If not, it black-lists
that page of virtual memory, which means it refuses to ever allocate
any heap object on that page. That means 12345000 can never be
mistaken for a pointer. So large chunks of virtual memory get
black listed.
I had problems with that years ago, on 32-bit machines with heap sizes
in the hundreds of megabytes. But on a 64-bit machine, it's not a
problem -- nobody can afford enough RAM to make up (say) 10% of
the virtual address space.
Anyway, this isn't Ada specific -- Boehm GC works that way with all
languages.
> Unchecked_Deallocation is used a lot.
Another alternative in Ada is storage pools (sometimes called
"region-based memory management). Not 100% safe in Ada, but much safer
and much more efficient than Unchecked_Deallocation (in cases where
storage pools are appropriate).
- Bob
next prev parent reply other threads:[~2012-08-21 22:32 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <5021874F.1747D0BF@sonic.net>
[not found] ` <1e1tf9-0kp2.ln1@ntp6.tmsw.no>
[not found] ` <k0gn5r$l9h$1@needham.csi.cam.ac.uk>
[not found] ` <GPRWr.31944$Bw1.31300@newsfe05.iad>
[not found] ` <k0gq97$li8$1@needham.csi.cam.ac.uk>
[not found] ` <k0h6ef$jke$1@speranza.aioe.org>
[not found] ` <46f19bfc-930e-4f06-b5a6-c60f39cfda0c@p14g2000yqk.googlegroups.com>
[not found] ` <k0r609$4ij$1@speranza.aioe.org>
[not found] ` <077b12f6-1196-4b5c-bbdb-04291b1ae616@q22g2000vbx.googlegroups.com>
[not found] ` <k0rree$lkn$1@speranza.aioe.org>
[not found] ` <CC5730C5.1BC2E%yaldnif.w@blueyonder.co.uk>
[not found] ` <k0t67b$b8r$1@speranza.aioe.org>
[not found] ` <CC585119.1BCCC%yaldnif.w@blueyonder.co.uk>
[not found] ` <k0uenp$fbg$1@speranza.aioe.org>
[not found] ` <k0vo9u$fer$1@dont-email.me>
[not found] ` <589825d2-d998-456a-9c37-c8ae13e1e7bc@e29g2000vbm.googlegroups.com>
2012-08-21 20:48 ` Have the Itanium critics all been proven wrong? Niklas Holsti
2012-08-21 22:32 ` Robert A Duff [this message]
[not found] ` <keb838pn40uf3pq1536e9b3dptgd57h3se@invalid.netcom.com>
2012-08-22 2:32 ` Bill Findlay
2012-08-22 2:42 ` Adam Beneschan
2012-08-22 4:08 ` Bill Findlay
2012-08-22 4:40 ` Adam Beneschan
2012-08-22 9:29 ` Michael S
2012-08-22 10:14 ` Dmitry A. Kazakov
2012-08-22 10:28 ` Ludovic Brenta
2012-08-22 12:48 ` Brian Drummond
2012-08-22 15:42 ` Ludovic Brenta
2012-08-22 10:54 ` Niklas Holsti
2012-08-22 12:43 ` Michael S
2012-08-22 13:20 ` Michael S
2012-08-22 22:30 ` Randy Brukardt
[not found] ` <k10tdr$nm6$1@dont-email.me>
[not found] ` <bb4e5231-142b-437c-8c2a-bbd6daf34df8@g2g2000vba.googlegroups.com>
2012-08-22 12:39 ` Brian Drummond
2012-08-22 14:00 ` Michael S
2012-08-22 15:06 ` Brian Drummond
2012-08-22 15:21 ` Bill Findlay
2012-08-22 15:59 ` Michael S
2012-08-22 16:01 ` Michael S
2012-08-22 16:58 ` Georg Bauhaus
2012-08-22 18:18 ` Bill Findlay
2012-08-22 15:05 ` Simon Wright
[not found] <k0jkb3$hm1$1@dont-email.me>
[not found] ` <632eec054470aafb59e98744e950ea8b@dizum.com>
[not found] ` <k0m5c3$t6t$1@dont-email.me>
[not found] ` <CC545B6F.1BA11%yaldnif.w@blueyonder.co.uk>
2012-08-22 22:35 ` Bill Findlay
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox