sim: Add support for tcmalloc if it's installed and available.
authorAli Saidi <Ali.Saidi@ARM.com>
Tue, 5 Jun 2012 05:23:09 +0000 (01:23 -0400)
committerAli Saidi <Ali.Saidi@ARM.com>
Tue, 5 Jun 2012 05:23:09 +0000 (01:23 -0400)
This package is available in Ubuntu, Debian, and Redhat as google-perftools.
With multiple tests on a single machine I've seen a little over 10% performance
gain with tcmalloc.

SConstruct

index 2b3f6a8d85d95037209c8a6b148089521015842c..f0350ac020845a4f179c03d3afe0e8ddaa9ce6c2 100755 (executable)
@@ -749,6 +749,14 @@ have_posix_clock = \
     conf.CheckLibWithHeader('rt', 'time.h', 'C',
                             'clock_nanosleep(0,0,NULL,NULL);')
 
+if conf.CheckLib('tcmalloc_minimal'):
+    have_tcmalloc = True
+else:
+    have_tcmalloc = False
+    print termcap.Yellow + termcap.Bold + \
+          "You can get a 12% performance improvement by installing tcmalloc "\
+          "(google-perftools package on Ubuntu or RedHat)." + termcap.Normal
+
 if not have_posix_clock:
     print "Can't find library for POSIX clocks."
 
@@ -1011,6 +1019,9 @@ for variant_path in variant_paths:
     if env['USE_SSE2']:
         env.Append(CCFLAGS=['-msse2'])
 
+    if have_tcmalloc:
+        env.Append(LIBS=['tcmalloc_minimal'])
+
     # The src/SConscript file sets up the build rules in 'env' according
     # to the configured variables.  It returns a list of environments,
     # one for each variant build (debug, opt, etc.)