Caricamento lento, noto anche come caricamento dinamico della funzione , è una modalità che consente a uno sviluppatore di specificare quali componenti di un programma non devono essere caricati nella memoria per impostazione predefinita all'avvio di un programma. Di solito, il caricatore di sistema carica automaticamente il programma iniziale e tutti i suoi componenti dipendenti contemporaneamente. Nel caricamento lento, i dipendenti vengono caricati solo se specificatamente richiesti. Il caricamento lento può essere utilizzato per migliorare le prestazioni di un programma se la maggior parte dei componenti dipendenti non viene mai effettivamente utilizzata.
Uno sviluppatore può abilitare il caricamento lento componente per componente sia nelle applicazioni con thread che in quelle senza thread. Lo svantaggio del caricamento lento è che se un componente chiama la maggior parte dei suoi dipendenti, ogni chiamata di funzione a un componente caricato in modo lento richiede istruzioni e tempo extra. Di conseguenza, se ci si può aspettare che un programma utilizzi la maggior parte dei suoi componenti dipendenti, il caricamento lento probabilmente non migliorerà le prestazioni.