Thursday Mar 15, 2012

How to Unlock the Performance of Your Multithreaded Applications

Does the memory allocation of your multi-threaded application look like this?

That's probably because you're using a memory allocator designed for single-thread, single-CPU applications. Those memory allocators use malloc() and free() to reserve a portion of memory for your application, and then release it.

That type of memory allocator can continue to work in an application that ventures timidly into the possibilities of a multi-core, multithread-capable system. However, as the thread count begins to increase, different threads will start to request access to memory at the same time, and the traditional memory allocator won't be able to keep up.

Article: How Memory Allocation Affects Performance in Multithreaded Applications

Rick Weisner explains how memory allocation has evolved over the years, then shows you how to recognize a performance deficiency in your multithreaded application. Then he describes how to use three MT-aware memory allocators to take advantage of the performance promises of multi-core systems:

  • mtmemlock shipped with Oracle Solaris
  • libumem shipped with Oracle Solaris
  • the hoard allocator, publicly available

Stop the madness. Read Rick Weisner's article.

- Rick (Ramsey)

Website

Newsletter

Facebook

Twitter

About

Contributors:
Rick Ramsey
Kemer Thomson
and members of the OTN community

Search

Archives
« July 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
  
       
Today
Blogs We Like