Intrare în fundătură

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 19 decembrie 2020; verificările necesită 2 modificări .

Î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] .

Note

  1. HTML5 și Real World Site Performance: Seventh IE9 Platform Preview Available for Developers (link nu este disponibil) . Preluat la 7 august 2021. Arhivat din original la 29 ianuarie 2013. 
  2. Michael Howard, David Leblanc Scrierea codului securizat  (link indisponibil)