Una gran cantidad de c/malloc() en un para/while/do puede consumir mucho tiempo, así que tengo curiosidad si algún sistema operativo almacena memoria en memoria intermedia para mallocs rápidos.¿Algún sistema operativo implementa el almacenamiento en búfer para malloc()?
He estado reflexionando si podría acelerar el malloc escribiendo un envoltorio "codicioso" para malloc. P.ej. cuando pido 1MB de memoria, el asignador inicial asignaría 10MB y en el 2º, 3º, 4º, etc. ... llamar a la función malloc simplemente devolvería la memoria del trozo asignado la forma "normal". Por supuesto, si no hay suficiente memoria disponible, deberá asignar un nuevo trozo codicioso de memoria.
De alguna manera, creo que alguien debe haber hecho esto o algo similar antes. Entonces mi pregunta es simple: ¿es esto algo que acelerará significativamente el proceso de asignación de memoria? (Sí, podría haberlo intentado antes de hacer la pregunta, pero soy perezoso para escribir tal cosa si no hay necesidad de hacerlo)
Para aclarar, 'malloc' es parte de la biblioteca en tiempo de ejecución C, no del sistema operativo. Es común que 'malloc', así como los servicios de memoria del sistema operativo, almacenen en caché y almacenan en búfer para acelerar las asignaciones. –