diff options
Diffstat (limited to 'src/allocators/tcmalloc.py')
| -rw-r--r-- | src/allocators/tcmalloc.py | 45 |
1 files changed, 36 insertions, 9 deletions
diff --git a/src/allocators/tcmalloc.py b/src/allocators/tcmalloc.py index f81f88b..571ef0d 100644 --- a/src/allocators/tcmalloc.py +++ b/src/allocators/tcmalloc.py @@ -14,7 +14,6 @@ # # You should have received a copy of the GNU General Public License # along with allocbench. - """TCMalloc definition for allocbench""" from src.allocator import Allocator @@ -24,21 +23,49 @@ from src.artifact import GitArtifact class TCMalloc(Allocator): """TCMalloc allocator""" - sources = GitArtifact("tcmalloc", "https://github.com/gperftools/gperftools.git") + sources = GitArtifact("tcmalloc", "https://github.com/google/tcmalloc.git") + + def __init__(self, name, **kwargs): + + self.LD_PRELOAD = "{dir}/libtcmalloc.so" + self.patches = ["{patchdir}/tcmalloc_bazel_build_so.patch"] + self.build_cmds = [ + "cd {srcdir}; bazel build tcmalloc/tcmalloc.so", "mkdir {dir}", + "cp {srcdir}/bazel-bin/tcmalloc/tcmalloc.so {dir}/libtcmalloc.so" + ] + + super().__init__(name, **kwargs) + + +tcmalloc = TCMalloc("TCMalloc", + color="xkcd:blue", + version="1676100265bd189df6b5513feac15f102542367e") + + +class TCMallocGperftools(Allocator): + """gperftools TCMalloc allocator""" + + sources = GitArtifact("gperftools", + "https://github.com/gperftools/gperftools.git") def __init__(self, name, **kwargs): self.LD_PRELOAD = "{dir}/lib/libtcmalloc.so" self.prepare_cmds = ["./autogen.sh"] - self.build_cmds = ["cd {srcdir}; ./configure --prefix={dir}", - "cd {srcdir}; make install -j4"] + self.build_cmds = [ + "cd {srcdir}; ./configure --prefix={dir}", + "cd {srcdir}; make install -j4" + ] super().__init__(name, **kwargs) -tcmalloc = TCMalloc("TCMalloc", color="xkcd:blue", version="gperftools-2.7") +tcmalloc_gperftools = TCMallocGperftools("TCMalloc-gperftools", + color="xkcd:blue", + version="gperftools-2.7") -tcmalloc_nofs = TCMalloc("TCMalloc-NoFalsesharing", - patches=["{patchdir}/tcmalloc_2.7_no_active_falsesharing.patch"], - version="gperftools-2.7", - color="xkcd:navy") +tcmalloc_gperftools_nofs = TCMallocGperftools( + "TCMalloc-gperftools-NoFalsesharing", + patches=["{patchdir}/tcmalloc_2.7_no_active_falsesharing.patch"], + version="gperftools-2.7", + color="xkcd:navy") |
