În programare, o înregistrare de capăt mort ( ing. Dead Store ) este alocarea unei valori unei variabile locale dacă această valoare nu este citită de niciuna dintre instrucțiunile ulterioare. Scrierile de blocare ocupă timp și memorie CPU și nu fac nimic. Ele pot fi descoperite folosind analiza codului static .
Un exemplu de cod cu o intrare fără capăt în Java:
// DeadStoreExample.java import java.util.ArrayList ; import java.util.List ; public class DeadStoreExample { public static void main ( String [] args ) { List < String > list = new ArrayList < String > (); // Această atribuire este un stub, deoarece ArrayList nu este niciodată citită. list = getList (); Sistem . afară . println ( listă ) } private static List < String > getList () { return new ArrayList < String > ( "bună ziua" ); } }În acest exemplu, un obiect ArrayList<String> a fost instanțiat, dar nu a fost folosit niciodată. În schimb, variabilei care a făcut referință i-a fost atribuită o referință la un alt obiect. Zona de memorie care a fost alocată atunci când a fost declarată ArrayList trebuie eliberată, de exemplu, folosind colectorul de gunoi .
Un exemplu de cod cu o intrare fără capăt în JavaScript:
function func ( a , b ) { var x ; var i = 300 ; în timp ce ( i -- ) { x = a + b ; // intrare în fundătură } }Acest exemplu suprascrie aceeași variabilă locală de mai multe ori într-o buclă . În timp ce numai valoarea scrisă la ultima iterație poate fi folosită în program după această buclă . Astfel, toate scrierile la variabila x, cu excepția ultimei, sunt fundături.
Într -un compilator de optimizare, eliminarea înregistrărilor dead-end se poate face prin optimizarea eliminării codului mort [1] sau prin optimizarea eliminării înregistrărilor dead-end ( de ing. Dead Store Elimination ) [2] .