comp.lang.ada
 help / color / mirror / Atom feed
* ANN: Storage pool for Ada 2005 with bindings to Apache Runtime Pools library
@ 2011-03-24 14:00 Brad Moore
  2011-03-24 15:54 ` Shark8
  2011-03-24 15:59 ` Brian Drummond
  0 siblings, 2 replies; 5+ messages in thread
From: Brad Moore @ 2011-03-24 14:00 UTC (permalink / raw)


This is the initial release of a storage pool for Ada 2005
called Deepend, that binds to the Apache Runtime Pools library.

Key features
- Pool may deallocate all storage all at once, rather than having
   to perform Unchecked_Deallocation one object at a time.
- No need to call Unchecked_Deallocation with this pool. It is
   essentially a NO-OP.
- Provides Subpool capabilities, where a pool object may be a
   subpool of another pool object. The lifetime of the subpool
   object extends to the lifetime of the ultimate top-level pool
   object. Subpools may in turn also have subpools.
- Fast storage management, should be more efficient than
   garbage collection strategies used in other languages.

The latest stable release and older releases may be downloaded from;

https://sourceforge.net/projects/deepend/files/

For those who want the current development versions of the source they
can download using git (http://git-scm.com/) by issuing the following 
commands

   mkdir sandbox
   cd sandbox
   git clone git://deepend.git.sourceforge.net/gitroot/deepend/deepend

The current development version typically will correspond to the latest 
stable release, but may at times be unstable when new features are being 
worked on.


Low-level Bindings to the Apache Runtime Pools library were recently 
used for a submission to the Computer Language Benchmarks game, binary 
tree benchmark, and moved Ada into the number 2 spot behind C.
On my machine, the Ada version actually runs 10% faster than the C 
version, but for some reason the benchmark has C ahead of Ada.
It may be that the number of worker threads isn't tuned correctly for
the benchmark hardware, or compiler version differences, or other 
differences related to the target platform.

See 
http://shootout.alioth.debian.org/u64q/benchmark.php?test=binarytrees&lang=all

Although the submission code does not use Deepend, the submission
code has been reworked to use deepend to see if performance is
impacted by using Ada's storage pool mechanism, and no noticeable
performance impacts were found.

Brad Moore



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2011-03-25  5:25 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-03-24 14:00 ANN: Storage pool for Ada 2005 with bindings to Apache Runtime Pools library Brad Moore
2011-03-24 15:54 ` Shark8
2011-03-24 15:59 ` Brian Drummond
2011-03-24 21:25   ` Brad Moore
2011-03-25  5:25     ` Brad Moore

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