Бинарник на musl оказался на 26% медленнее glibc даже с хорошим аллокатором
musl — лёгкая libc, на которой собраны Alpine-образы Docker и самодостаточные статические Linux-бинарники «один файл — и работает». Джонатан Эллис, сооснователь DataStax, много лет возглавлявший проект Apache Cassandra, замерил цену этого удобства на рабочей нагрузке своего Rust-инструмента.
Со штатным аллокатором musl проигрывает разгромно, причём не только под высокой конкурентностью, где его чаще всего ругают: замеры шли на обычных четырёхъядерных машинах EC2. Замена аллокатора на mimalloc убрала большую часть разрыва, но 26% остались — профилирование указало на базовые процедуры работы с памятью внутри самой libc.
Эллис оставил musl только маленьким утилитам, где важен размер файла, а из инструмента, чувствительного к скорости, убрал готовую musl-сборку. Если ваш сервис живёт в Alpine и упирается в процессор — сравните обе libc с одинаковым аллокатором на своей нагрузке.
Post #14750
6.43K

- 👀 5
- 🔥 4
- 👏 2
- ❤ 1
- ✍ 1
- 👍 1
- 🕊 1
- 💯 1