Un sacco di c/malloc() in un for/while/do può consumare molto tempo quindi sono curioso di sapere se qualsiasi sistema operativo memorizza memoria per malloc veloci.Qualunque sistema operativo implementa il buffering per malloc()?
Ho riflettuto se potevo accelerare Malloc's scrivendo un involucro "avido" per malloc. Per esempio. quando richiedo 1MB di memoria, l'allocatore iniziale assegnerebbe 10MB e sul 2 °, 3 °, 4 ° ecc ... la funzione malloc restituirebbe semplicemente la memoria dal blocco che prima assegnava il modo "normale". Ovviamente, se non c'è abbastanza memoria disponibile, è necessario allocare un nuovo bel pezzo di memoria.
In qualche modo penso che qualcuno debba aver fatto questo o qualcosa di simile prima. Quindi la mia domanda è semplicemente: è qualcosa che accelera il processo di allocazione della memoria in modo significativo. (sì, avrei potuto provarlo prima di fare la domanda ma sono solo pigro per scrivere una cosa del genere se non c'è bisogno di farlo)
Giusto per chiarire, 'malloc' fa parte della libreria di runtime C, non del sistema operativo. È frequente che 'malloc' e i servizi di memoria del sistema operativo eseguano il caching e il buffering per accelerare le allocazioni. –