Biasanya Jemalloc dipakai oleh server high performance, Firefox, dan beberapa aplikasi lainnya. Setelah dicobakan ke Gentoo, ternyata Jemalloc bisa dipakai juga untuk lingkungan laptop saya. Hasilnya, aplikasi jauh lebih cepat.

Dapatkan Jemalloc

Ubuntu saya masih Ubuntu Precise. Jemalloc-nya masih 2.2.5. Versi Jemalloc di Quantal sudah pakai 3.0.0. Ya, sudah,  saya unduh saja:

$ wget http://www.canonware.com/download/jemalloc/jemalloc-3.0.0.tar.bz2
$ cd jemalloc-3.0.0

Jemalloc tidak membutuhkan banyak pustaka karena dia mengimplementasi ulang fungsi alokasi memori.

Konfigurasi

Untuk yang lemah iman, gunakan saja konfigurasi standar:

$ ./configure --prefix=/usr

Untuk yang suka tantangan seperti saya, mari kita gunakan:

$ ./configure --prefix=/usr  --enable-prof --enable-prof-libunwind --enable-dss --enable-xmalloc

Oh, iya, sebelum menjalankan perintah tersebut, terlebih dahulu pasang “libunwind” untuk melakukan profilling. Caranya:

$ sudo apt-get install libunwind7

Sebenarnya ada “–enable-lazy-lock”. Menurut referensi, dapat menyebabkan masalah pada beberapa aplikasi Java. Ya, sudah, saya tidak ikutkan. Saya banyak menggunakan aplikasi Java soalnya.

Kalau sudah, kompilasi:

$ make && sudo make install

Pakai

Untuk yang paranoid, mungkin bisa pilih aplikasi apa saja yang memakai Jemalloc. Caranya mudah, buka terminal dan buat LD_PRELOAD sebelum menjalankan aplikasi. Contoh:

$ export LD_PRELOAD=/usr/lib/libjemalloc.so.1
$ gedit # contoh aplikasinya gedit.

Untuk yang suka tantangan seperti saya, silakan langsung saja taruh pustaka Jemalloc di “/etc/ld.so.preload”. Dengan ini, setiap aplikasi yang berjalan pasti menggunakan Jemalloc. Caranya, sunting berkas tersebut dengan penyunting teks, atau gunakan:

$ echo "/usr/lib/libjemalloc.so.1" | sudo tee -a /etc/ld.so.preload

Beres.

Pengalaman

Dari penggunaan saya, sampai detik ini saya belum menemukan masalah. Malah, performa laptop saya meningkat. Sampai jumpa pada seri optimasi yang lain.

Bacaan Lebih Lanjut

Scalable memory allocation using jemallocThe Facebook website comprises a diverse set of server applications, most of which run on dedicated machines with 8+ CPU cores and 8+ GiB of RAM. These applications typically use POSIX threads for concurrent computations, with the goal of maximizing throughput by fully utilizing the CPUs and RAM.