From: Ali Saidi Date: Tue, 5 Jun 2012 05:23:09 +0000 (-0400) Subject: sim: Add support for tcmalloc if it's installed and available. X-Git-Tag: stable_2012_06_28~28 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=aec7a4411683d8b10684f8f70093bcbbc2de8b55;p=gem5.git sim: Add support for tcmalloc if it's installed and available. 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. --- diff --git a/SConstruct b/SConstruct index 2b3f6a8d8..f0350ac02 100755 --- a/SConstruct +++ b/SConstruct @@ -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.)