Selepas dua dekad pembangunan dan penggunaan meluas merentasi platform utama, pengagih memori jemalloc telah mencapai penghujung kitaran pembangunan aktifnya. Pencipta projek tersebut mengumumkan bahawa pembangunan huluan telah berakhir, menandakan berakhirnya era untuk salah satu alat pengurusan memori yang paling berpengaruh dalam pengkomputeran moden.
jemalloc memulakan perjalanannya pada tahun 2004 sebagai sebahagian daripada projek bahasa pengaturcaraan yang dipanggil Lyken, tetapi menemui panggilan sebenarnya apabila diintegrasikan ke dalam FreeBSD pada tahun 2005. Pengagih ini direka untuk menangani keperluan yang semakin meningkat untuk pengurusan memori berbilang benang apabila komputer beralih kepada seni bina berbilang pemproses. Kejayaannya membawa kepada penggunaan oleh projek-projek utama termasuk Mozilla Firefox, di mana ia membantu menyelesaikan isu pemecahan memori kritikal pada sistem Windows.
Garis Masa Pembangunan jemalloc
- 2004: Konsep awal sebagai sebahagian daripada bahasa pengaturcaraan Lyken
- 2005: Integrasi ke dalam FreeBSD bermula
- 2007: Penggunaan Mozilla Firefox untuk isu pemecahan Windows
- 2009-2017: Fasa pembangunan Facebook/Meta dengan penambahbaikan utama
- 2016: Pembangunan Huge Page Allocation (HPA) bermula
- 2024: Pembangunan huluan aktif berakhir
Pelaburan Korporat Memacu Inovasi
Tempoh pertumbuhan paling ketara bagi pengagih ini berlaku semasa berada di Facebook (kemudiannya Meta), di mana ia mendapat manfaat daripada data telemetri berskala besar daripada beribu-ribu aliran kerja yang berbeza. Data prestasi dunia sebenar ini terbukti sangat berharga untuk pengoptimuman, membolehkan pembangun membuat keputusan termaklum tentang penambahbaikan laluan pantas dan strategi mengelakkan pemecahan. Pelaburan syarikat dalam pembangunan jemalloc termasuk membina pasukan khusus dan melaksanakan infrastruktur ujian yang komprehensif.
Walau bagaimanapun, perbincangan komuniti mendedahkan bahawa peralihan terkini Meta ke arah menekankan pulangan pelaburan berbanding pembangunan teknologi teras telah mengakhiri momentum ke hadapan projek tersebut dengan berkesan. Ciri Huge Page Allocation (HPA), yang telah dalam pembangunan sejak 2016, baru-baru ini terbantut apabila hutang teknikal terkumpul tanpa pemfaktoran semula yang betul.
Pengguna Utama jemalloc
- FreeBSD (pengalokasi sistem lalai)
- Pangkalan data Redis
- Mozilla Firefox (versi bercabang)
- Aplikasi Ruby on Rails
- Android (dahulu, kini telah digantikan)
- Infrastruktur Meta/Facebook
Cabaran Teknikal dan Kesan Komuniti
Pasukan pembangunan menghadapi beberapa halangan teknikal sepanjang evolusi jemalloc. Versi awal mengalami isu pemecahan yang teruk di bawah beban kerja tertentu, terutamanya dengan aplikasi KDE, memaksa reka bentuk semula lengkap algoritma pengagihan. Keputusan kemudian, seperti mengeluarkan sokongan Valgrind dalam versi 5.0.0, mencipta geseran dengan pengguna luar yang bergantung pada keupayaan penyahpepijatan ini.
Jemalloc masih pada pendapat saya adalah pelaksanaan malloc tujuan umum yang berprestasi terbaik yang mudah digunakan; TCMalloc hebat, tetapi merupakan mimpi ngeri mutlak untuk digunakan jika anda tidak menggunakan bazel
Komuniti kini bergelut dengan apa yang akan datang seterusnya. Walaupun jemalloc akan kekal tersedia selama-lamanya disebabkan pelesenan sumber terbuka, pengguna sudah meneroka alternatif seperti mimalloc dan tcmalloc untuk projek masa depan. Sesetengah pembangun menyeru untuk keluaran akhir 6.0 dengan tetapan lalai yang dimodenkan sebelum projek tersebut diarkibkan sepenuhnya.
Pengalokasi Memori Alternatif
- mimalloc: Baru-baru ini diterima pakai oleh CPython , prestasi setanding dengan jemalloc
- tcmalloc: Pengalokasi Google berprestasi tinggi, memerlukan sistem binaan Bazel
- snmalloc: Alternatif baru muncul yang disebut oleh komuniti
- glibc malloc: Pengalokasi sistem standard dengan prestasi yang lebih rendah
Memandang ke Hadapan
Walaupun berakhir, kesan jemalloc terhadap teknologi pengagihan memori tidak boleh dipandang remeh. Ia kini berfungsi sebagai pengagih lalai pada FreeBSD dan menggerakkan infrastruktur kritikal untuk aplikasi yang tidak terkira banyaknya, daripada pangkalan data Redis hingga pelayan Ruby on Rails. Pengaruh projek ini melangkaui penggunaan langsungnya, telah mengilhamkan banyak pengagih memori lain dan menyumbang penyelidikan berharga kepada bidang tersebut.
Berakhirnya pembangunan jemalloc menyerlahkan cabaran yang lebih luas dalam mengekalkan projek infrastruktur sumber terbuka. Walaupun perisian akan terus berfungsi seperti sedia ada, kekurangan pembangunan berterusan bermakna ia mungkin secara beransur-ansur menjadi kurang optimum apabila persekitaran perkakasan dan perisian berkembang. Buat masa ini, pengguna sedia ada boleh terus bergantung pada prestasi terbukti jemalloc, manakala projek baharu mungkin perlu mempertimbangkan alternatif yang muncul dalam landskap pengagihan memori.
Rujukan: jemalloc Postmortem