PR# 13857 Use libumem memory allocation library on Solaris
Problem Report Summary
Submitter: prestoat2000
Category: Runtime
Priority: Medium
Date: 2008/01/05
Class: Feature Request
Severity: Serious
Number: 13857
Release: 6.2.71782
Confidential: No
Status: Open
Responsible:
Environment: Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:1.8.1.9) Gecko/20071111 Firefox/2.0.0.9
Solaris 9 on SPARC
Synopsis: Use libumem memory allocation library on Solaris
Description
Please consider using the libumem memory allocation library instead of
traditional malloc on the Solaris platform. Malloc has a MT level of Safe,
meaning it is safe for multithreaded applications but provides no significant
concurrency. As the man page says
These default memory allocation routines are safe for use in
multithreaded applications but are not scalable. Concurrent
accesses by multiple threads are single-threaded through the
use of a single lock. Multithreaded applications that make
heavy use of dynamic memory allocation should be linked with
allocation libraries designed for concurrent access, such as
libumem(3LIB) or libmtmalloc(3LIB).
It might also be faster for non-MT applications (not sure). It would certainly
be worth a try and should be easy since most (but not all) memory allocation
goes through the wrapper routines in lmalloc.c.
For more info
man umem_alloc
Since libumem is part of Solaris and is open source, it was recently ported
to Windows and Linux systems. See
https://labs.omniti.com/trac/portableumem
Don't know if it is reliable on non-Solaris platforms.
To Reproduce
Problem Report Interactions