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

import os
import subprocess

import src.globalvars

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

src.globalvars.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 != "":
            src.globalvars.allocators[t] = {"cmd_prefix": "",
                                            "binary_suffix": "",
                                            "LD_PRELOAD": path,
                                            "color": "C"+str(i+2)}
    except:
        pass