Click on White Papers to find out how GlobeTOM used NewCode MTS to boost their application performance by 800%!

NewCode Memory Tuning System

Thank you for your interest in the Memory Tuning System (MTS) from NewCode®. MTS is a replacement memory allocator (malloc/free) that dramatically improves the run time performance of your applications. MTS provides at least a two-fold performance gain over system supplied fast allocation libraries or other third-party memory managers. On systems with many processors, MTS provides performance gains of orders of magnitude beyond the default system allocator.

Allocation Problems in Modern Applications

The problem of dynamic memory management performance is intensifying as most deployed systems are gearing towards multi-processing on inexpensive machines. Two processor Linux and Windows machines are now common and at the high end, 8 - 32 processor Unix machines are prevalent. Although relatively painless fixes are available for single threaded programs, to secure a free flow of memory allocations for a multi-threaded multi-processing program is a much more daunting task. Based on customer tests, MTS solves this problem more effectively than any other current solution.

MTS Performance

MTS provides an order of magnitude improvement over system supplied libraries under Windows and Unix and is 2-5 times faster than the GNU GPL Hoard memory manager. Memory management is only one component of a system's dynamic performance, however, it can quickly become the dominant one. While a typical program spends no more than 5-40% of its runtime in memory management related functions, an SMP program, in its memory management functions, can easily experience dramatic drops in CPU utilization rates due to the heavy lock contention introduced by a non scalable heap design. MTS usually leads to an overall application performance improvement of 30-50% and gains of between 800-1200% are common.

MTS was designed to solve common performance problems in single-threaded and multithreaded applications on systems that dynamically allocate and de-allocate memory.

MTS often requires no modifications to existing application source code. The allocator works transparently with both C and C++ programs. MTS manages heap allocation so that individual application threads run independently and cooperatively to ensure that the application runs at full speed with minimal or no lock contention.

Highlights of NewCode MTS
  • » NO coding changes required!
  • » fastest allocation available
  • » improves application responsiveness under heavy loads
  • » scalable to multi-gigabyte applications
  • » maximizes CPU utilization (through better scalability)
  • » decreases paging to disk
  • » available on all popular hardware and OSes
  • » and more! Try and evaluation for yourself today!

How MTS Works

MTS was developed to enhance the performance of symmetric multi-processor machine (SMP) applications. MTS works transparently in C and more importantly C++ programs. MTS achieves its performance gains by internally creating multiple virtual copies of itself, that transparently work with threads that are scheduled to run simultaneously. Replacing the traditional new/delete or malloc/free memory management interfaces, MTS instantiates multiple versions of itself, which run independently and cooperatively to ensure that multiple threads run at full speeds on their respective CPU's with minimal and often no lock contention. MTS achieves a "100%" overlap between simultaneous running threads that are executing memory management related operations.

Development of MTS

MTS has been developed over a period of 15 years. It was initially geared towards providing a very high-speed non-threaded solution, still currently available, which minimizes space utilization and most importantly minimizes paging effects of extended free lists. As the amount of memory a program utilizes rises to about 70% of available memory, system memory managers cause excessive amounts of paging which causes a dramatic drop-off in application response times. MTS, in addition to regaining most of the 20% runtime performance penalty for memory functions, restores application responsiveness under stressful system loads. These basic algorithms are extremely linear and deterministic in their performance. MTS also provides stellar performance in SMP environments by exposing the standard MTS functionality to each individual thread in a multithreaded application. This allows all of the threads to interact with their heaps without performance hindering lock collisions -- providing true SMP scalability!

NewCode® MTS is available for your immediate evaluation. Please go to the evaluation page and find out why so many successful companies have chosen MTS to maximize their own software reliability, responsiveness and performance.