aboutsummaryrefslogtreecommitdiff
path: root/src/allocators/tcmalloc.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/allocators/tcmalloc.py')
-rw-r--r--src/allocators/tcmalloc.py45
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")