musl es un lastre para el rendimiento: hasta un 26% más lento incluso con mimalloc
Don't use musl if you care about performance

Jonathan Ellis, creador de Bifrost, descubre que musl, la biblioteca C estándar para binarios estáticos, degrada el rendimiento hasta un 26% incluso con el asignador de memoria mimalloc. Tras medir el impacto en Bifrost, identifica que no solo el asignador es deficiente, sino también varias rutinas de memoria comunes. Por ello, elimina musl como opción precompilada en Bifrost, aunque lo mantiene en proyectos menores donde la simplicidad pesa más que la velocidad.
Creo que musl debería distribuirse sin asignador de memoria y obligarte a elegir uno.
- matherial
Si tu algoritmo hace muchísimas asignaciones pequeñas hasta el punto de que el asignador se convierte en el cuello de botella, ya lo estás haciendo mal. El asignador necesariamente conlleva mucha sobrecarga porque tiene que adaptarse a diversos casos de uso, evitar la fragmentación y, idealmente, implementar una variedad de comprobaciones de seguridad. Si estás haciendo algo intensivo en asignaciones, probablemente estás asignando y liberando muchas estructuras idénticas y sería mejor que tomaras algo de memoria contigua y la gestionaras tú mismo de una manera específica para tu tarea.
Pero la realidad es que casi nadie se preocupa realmente por el rendimiento porque el cómputo es más barato que la experiencia y la mano de obra, al menos a corto plazo. Todo se está volviendo más inflado y más lento, y lo compensamos añadiendo núcleos de CPU, gigabytes y gigahercios.
- marssaxman
La gente tiene perspectivas muy diferentes. Un 26% más lento no me parece "terrible"; me parece un precio bastante razonable que uno podría elegir pagar por la comodidad que ofrece musl. Si el asignador de musl fuera 2.6 veces más lento, podría llamarlo "no muy bueno"... pero para calificar como "terrible" creo que la diferencia tendría que ser de un orden de magnitud.
- bloppe
Esto es solo un aspecto del "rendimiento". El asignador de glibc puede ser más rápido, pero también usa más memoria.
Para una discusión mucho más técnica, ver https://github.com/sharkdp/fd/issues/710
- mattrighetti
Publiqué esto el otro día, pero todo el asunto del asignador de musl parece ser bien conocido [0]
- grep_it
¿Creo que el tamaño de los binarios enlazados y la simplicidad siempre fueron las características principales?