On Thu, Feb 19, 2009 at 07:37:32PM +0100, Roland Mainz wrote:
> Nicolas Williams wrote:
> > On Wed, Feb 18, 2009 at 07:42:29PM +0100, Roland Mainz wrote:
> > > Nicolas Williams wrote:
> > > > I strongly recommend that ksh93/AST on Solaris use the standard
> > > > allocator, OR, if you insist on having a private allocator, that it
> > > > provide an allocator with standard names, so that: a) it interposes upon
> > > > libc's, b) remains interposable.
> > >
> > > The problem with |libc::malloc()| was that it isn't useable in ksh93's
> > > case:
> > > 1. |libc::malloc()| suffers from excessive fragmentation issues for
> > > long-running scripts. It simply doesn't stop growing the heap.
> > 
> > I am not sure that's true, but you should try libumem -- if it works
> > then link with libumem.  If no Solaris allocator works well enough then
> > use your own BUT DO NOT prefix the symbol names with _ast_ or anything
> > else -- let your allocator interpose on the system one so as to avoid
> > multiple allocators in one process.
> 
> AFAIK this will not work properly if someone uses libumem via LD_PRELOAD
> since libumem&co. are not async-signal safe and ksh93 relies on this
> feature.

I asked this before with no answer, but how does ksh93 do this without a
substantial performance overhead?

Cheers,
- jonathan


Reply via email to