Build and Install tcmalloc on UNIX
Follow this guide to Build and Install tcmalloc on UNIX systems like Ubuntu, RHEL, OpenSUSE and others. For this, we will get the source code of tcmalloc, build and install it and load required environment variables.
We need to follow the following steps:
- Get tcmalloc source code
- Build and install tcmalloc
- Load environment variables
In short, the steps are:
git clone https://github.com/google/tcmalloc.git
cd tcmalloc
bazel test //tcmalloc/...
export LD_PRELOAD="/usr/lib64/libtcmalloc.so.4"
Get tcmalloc source code
You can clone the source of tcmallc from the official GitHub repository:
git clone https://github.com/google/tcmalloc.git
If you want to build a specific version of tcmalloc, we can checkout to a previous commit (like b6f38bf):
cd tcmalloc
git checkout b6f38bf
Build and install tcmalloc
Once we go into the tcmalloc code base, we can build the library using the following command:
bazel test //tcmalloc/...
If you do not have bazel, you can follow this guide to build and install bazel.
This will build shared library of tcmalloc and generate the files libtcmalloc.so.4
Load environment variables
We need to set the environment variable LD_PRELOAD to point to the SO file of tcmalloc. Usually, the tcmalloc library may be installed in /usr/lib64.
export LD_PRELOAD="/usr/lib64/libtcmalloc.so.4"
Once set, all critical calls like malloc will go to tcmalloc. You need no extra step to use tcmalloc in your code. Build, install and enjoy using tcmalloc.