Yes, I use tcmalloc; thereâs this line from cmake -G Ninja ..
:
-- Found LibTCMalloc: /usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so
Itâs part of package libgoogle-perftools-dev
, which has these .so files:
/usr/lib/x86_64-linux-gnu/libprofiler.so
/usr/lib/x86_64-linux-gnu/libtcmalloc.so
/usr/lib/x86_64-linux-gnu/libtcmalloc_and_profiler.so
/usr/lib/x86_64-linux-gnu/libtcmalloc_debug.so
/usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so
/usr/lib/x86_64-linux-gnu/libtcmalloc_minimal_debug.so
But it appears that you arenât using tcmalloc:
$ ldd /usr/bin/swipl # Installed from PPA
linux-vdso.so.1 (0x00007ffcad7fa000)
libswipl.so.8 => /usr/lib/swi-prolog/lib/x86_64-linux/libswipl.so.8 (0x00007fba93f5c000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fba93b6b000)
libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007fba93941000)
libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007fba936c0000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fba934a3000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fba93284000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fba93080000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fba92ce2000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fba92ada000)
/lib64/ld-linux-x86-64.so.2 (0x00007fba944e7000)
$ ldd ~/src/swipl-devel/build/src/swipl
linux-vdso.so.1 (0x00007fffa7f0f000)
libtcmalloc_minimal.so.4 => /usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4 (0x00007f2a371b8000)
libswipl.so.8 => /home/peter/src/swipl-devel/build/src/libswipl.so.8 (0x00007f2a36e2b000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2a36a3a000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f2a366b1000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f2a36313000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f2a360fb000)
libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f2a35ed1000)
libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f2a35c50000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f2a35a33000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f2a35814000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f2a35610000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f2a35408000)
/lib64/ld-linux-x86-64.so.2 (0x00007f2a37605000)
The relevant packages on my system (5.3.0-51-generic #44~18.04.2-Ubuntu SMP) are:
$ dpkg -s libgoogle-perftools4 libtcmalloc-minimal4
Package: libgoogle-perftools4
Status: install ok installed
Priority: optional
Section: libs
Installed-Size: 992
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: amd64
Source: google-perftools
Version: 2.5-2.2ubuntu3
Depends: libtcmalloc-minimal4 (= 2.5-2.2ubuntu3), libc6 (>= 2.27), libstdc++6 (>= 5.2), libunwind8
Conflicts: libgoogle-perftools0
Description: libraries for CPU and heap analysis, plus an efficient thread-caching malloc
The gperftools, previously called google-perftools, package contains some
utilities to improve and analyze the performance of C++ programs. This includes
the full features: an optimized thread-caching malloc() and cpu and heap
profiling utilities.
Homepage: https://github.com/gperftools/gperftools
Original-Maintainer: Daigo Moriwaki <daigo@debian.org>
Package: libtcmalloc-minimal4
Status: install ok installed
Priority: optional
Section: libs
Installed-Size: 371
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: amd64
Source: google-perftools
Version: 2.5-2.2ubuntu3
Depends: libc6 (>= 2.14), libgcc1 (>= 1:3.0), libstdc++6 (>= 5.2)
Description: efficient thread-caching malloc
The gperftools, previously called google-perftools, package contains some
utilities to improve and analyze the performance of C++ programs. This is a
part of that package, and includes an optimized thread-caching malloc.
Homepage: https://github.com/gperftools/gperftools
Original-Maintainer: Daigo Moriwaki <daigo@debian.org>
$ dpkg -s swi-prolog swi-prolog-nox swi-prolog-x
Package: swi-prolog
Status: install ok installed
Priority: optional
Section: interpreters
Installed-Size: 69
Maintainer: Jan Wielemaker <jan@swi-prolog.org>
Architecture: amd64
Version: 8.3.1-1-g49260b9f7-bionicppa2
Depends: swi-prolog-nox (= 8.3.1-1-g49260b9f7-bionicppa2), swi-prolog-x (= 8.3.1-1-g49260b9f7-bionicppa2)
Suggests: swi-prolog-doc, prolog-el
Description: ISO/Edinburgh-style Prolog interpreter
SWI-Prolog is a fast and powerful ISO/Edinburgh-style Prolog compiler with a
rich set of built-in predicates. It offers a fast, robust and small
environment which enables substantial applications to be developed with it.
.
SWI-Prolog additionally offers:
.
* A powerful module system
* Garbage collection
* Unicode character set handling
* Unbounted integer and rational number arithmetic
* Multithreading support
* A powerful C/C++ interface
* GNU Readline interface
Homepage: http://www.swi-prolog.org
Package: swi-prolog-nox
Status: install ok installed
Priority: optional
Section: interpreters
Installed-Size: 19612
Maintainer: Jan Wielemaker <jan@swi-prolog.org>
Architecture: amd64
Source: swi-prolog
Version: 8.3.1-1-g49260b9f7-bionicppa2
Depends: libarchive13 (>= 3.1.2), libc6 (>= 2.23), libedit2 (>= 3.1-20140620), libgmp10, libossp-uuid16, libpcre3, libreadline7 (>= 6.0), libssl1.1 (>= 1.1.1), libtinfo5 (>= 6), libyaml-0-2, zlib1g (>= 1:1.2.2), libgmp-dev, libedit-dev, libreadline-dev, libncursesw5-dev, libjs-jquery
Suggests: swi-prolog-doc, prolog-el
Breaks: swi-prolog (<< 5.8.2-1)
Description: ISO/Edinburgh-style Prolog interpreter (without X support)
SWI-Prolog is a fast and powerful ISO/Edinburgh-style Prolog compiler with a
rich set of built-in predicates. It offers a fast, robust and small
environment which enables substantial applications to be developed with it.
.
SWI-Prolog additionally offers:
.
* A powerful module system
* Garbage collection
* Unicode character set handling
* Unbounted integer and rational number arithmetic
* Multithreading support
* A powerful C/C++ interface
* GNU Readline interface
.
This package contains a working SWI-Prolog installation with GUI components.
Homepage: http://www.swi-prolog.org
Package: swi-prolog-x
Status: install ok installed
Priority: optional
Section: interpreters
Installed-Size: 11338
Maintainer: Jan Wielemaker <jan@swi-prolog.org>
Architecture: amd64
Source: swi-prolog
Version: 8.3.1-1-g49260b9f7-bionicppa2
Depends: libc6 (>= 2.17), libfontconfig1 (>= 2.12), libjpeg8 (>= 8c), libx11-6, libxft2 (>> 2.1.1), libxpm4, libxt6, swi-prolog-nox (= 8.3.1-1-g49260b9f7-bionicppa2)
Description: User interface library for SWI-Prolog (with X support)
SWI-Prolog is a fast and powerful ISO/Edinburgh-style Prolog compiler with a
rich set of built-in predicates. It offers a fast, robust and small
environment which enables substantial applications to be developed with it.
.
SWI-Prolog additionally offers:
.
* A powerful module system
* Garbage collection
* Unicode character set handling
* Unbounted integer and rational number arithmetic
* Multithreading support
* A powerful C/C++ interface
* GNU Readline interface
.
XPCE is an object-oriented symbolic programming environment for user
interfaces. Although XPCE was designed to be language-independent, it has
gained popularity most with Prolog.
Homepage: http://www.swi-prolog.org
$ ls -l /usr/lib/swi-prolog/lib/x86_64-linux/libswipl*
lrwxrwxrwx 1 root root 13 Jun 8 08:30 /usr/lib/swi-prolog/lib/x86_64-linux/libswipl.so -> libswipl.so.8
lrwxrwxrwx 1 root root 17 Jun 8 08:30 /usr/lib/swi-prolog/lib/x86_64-linux/libswipl.so.8 -> libswipl.so.8.3.1
-rw-r--r-- 1 root root 1587448 Jun 8 08:30 /usr/lib/swi-prolog/lib/x86_64-linux/libswipl.so.8.3.1