aboutsummaryrefslogtreecommitdiff
path: root/src/allocators.py
blob: 717c500e027bca8d677008ac8d3a7f9412b3a14a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
"""Default allocators using system libraries"""

import os
import subprocess

maybe_allocators = ["tcmalloc", "jemalloc", "hoard"]

allocators = {"libc": {"cmd_prefix"    : "",
                    "binary_suffix" : "",
                    "LD_PRELOAD"    : "",
                    "color"         : "C1"}}

for i, t in enumerate(maybe_allocators):
    try:
        path = subprocess.run('whereis lib{} | cut -d":" -f2'.format(t),
                              shell=True, stdout=subprocess.PIPE,
                              universal_newlines=True).stdout.strip()

        if path != "":
            allocators[t] = {"cmd_prefix": "", "binary_suffix": "",
                          "LD_PRELOAD": path, "color": "C"+str(i+2)}
    except:
        pass