Pensa a un utilizzo della memoria dei programmi come un sistema di raffreddamento ad acqua chiuso in un'automobile:
L'acqua viene pompata fuori dal serbatoio per le parti che necessitano di raffreddamento, quindi sul radiatore e ritorna al serbatoio. In questo modo le stesse molecole d'acqua vengono utilizzate più e più volte, per giorni, mesi, anni. Finché il sistema è perfettamente chiuso, può funzionare virtualmente per sempre. Ciò corrisponde molto bene all'utilizzo ideale della memoria da parte di un'applicazione: tutta la memoria viene restituita al serbatoio quando non è attualmente necessaria, in modo che possa essere utilizzata più e più volte, consentendo al processo di funzionare per sempre.
Ora, cosa succede quando hai una perdita? L'acqua / memoria è persa per il riutilizzo. Non ti interessa davvero dove sia finita l'acqua / la memoria. Se viene perso dal sistema chiuso di tubi / regioni di memoria note che alla fine verranno restituite al serbatoio, il serbatoio si esaurirà gli straordinari. L'ammontare nel serbatoio diminuirà nel tempo fino a quando non sarà rimasto abbastanza per garantire il corretto funzionamento. Anche in questo caso l'analogia è piuttosto buona: l'auto perde l'acqua di raffreddamento per il riutilizzo, la memoria dell'applicazione. La macchina finirà per surriscaldarsi, l'arresto anomalo dell'applicazione.
Onestamente non so se questa è l'analogia che le persone che hanno coniato il termine "perdita di memoria" avevano in mente, ma scommetto che è abbastanza vicino. Dopotutto, la memoria era una risorsa davvero scarsa nei primi giorni dell'informatica quando il termine fu coniato. È come far funzionare un sistema di raffreddamento con un serbatoio davvero minimo: qualsiasi perdita minore porterà a guasti in pochissimo tempo. Quindi, il riutilizzo della memoria doveva essere perfetto per consentire il buon funzionamento per un periodo di tempo prolungato.