diff options
| -rw-r--r-- | src/allocators/all.py | 3 | ||||
| -rw-r--r-- | src/allocators/rpmalloc.py | 40 |
2 files changed, 42 insertions, 1 deletions
diff --git a/src/allocators/all.py b/src/allocators/all.py index 0593c81..4ac0819 100644 --- a/src/allocators/all.py +++ b/src/allocators/all.py @@ -28,8 +28,9 @@ from src.allocators.llalloc import llalloc from src.allocators.tbbmalloc import tbbmalloc from src.allocators.mimalloc import mimalloc from src.allocators.snmalloc import snmalloc +from src.allocators.rpmalloc import rpmalloc allocators = [*src.allocators.glibcs.allocators, tcmalloc, tcmalloc_nofs, jemalloc, hoard, mesh, supermalloc, scalloc, tbbmalloc, llalloc, # streamflow, - mimalloc, snmalloc] + mimalloc, snmalloc, rpmalloc] diff --git a/src/allocators/rpmalloc.py b/src/allocators/rpmalloc.py new file mode 100644 index 0000000..c10944e --- /dev/null +++ b/src/allocators/rpmalloc.py @@ -0,0 +1,40 @@ +# Copyright 2018-2019 Florian Fischer <florian.fl.fischer@fau.de> +# +# This file is part of allocbench. +# +# allocbench is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# allocbench is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with allocbench. + +"""rpmalloc definition for allocbench""" + +from src.allocator import Allocator +from src.artifact import GitArtifact + + +class Rpmalloc(Allocator): + """rpmalloc allocator""" + + sources = GitArtifact("rpmalloc", "https://github.com/mjansson/rpmalloc") + + def __init__(self, name, **kwargs): + + self.LD_PRELOAD = "{dir}/librpmalloc.so" + self.build_cmds = ["cd {srcdir}; ./configure.py", + "cd {srcdir}; ninja", + "mkdir -p {dir}", + 'ln -f -s $(find {srcdir}/bin -path "*release*librpmalloc.so") {dir}/librpmalloc.so'] + + super().__init__(name, **kwargs) + + +rpmalloc = Rpmalloc("rpmalloc", color="xkcd:chestnut", version="1.4.0") |
