Blind vej indkørsel

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 19. december 2020; checks kræver 2 redigeringer .

I programmering er en blind-ende-record ( eng.  Dead Store ) tildelingen af ​​en værdi til en lokal variabel, hvis denne værdi ikke læses af nogen af ​​de efterfølgende instruktioner. Deadlock-skrivninger optager CPU-tid og hukommelse og gør ingenting. De kan opdages ved hjælp af statisk kodeanalyse .

Et eksempel på kode med en blind vej i 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 > (); // Denne opgave er en stump, da ArrayList aldrig læses. liste = getList (); System . ud . println ( liste ) } private static List < String > getList () { return new ArrayList < String > ( "hej" ); } }

I dette eksempel blev et ArrayList<String>-objekt instansieret, men aldrig brugt. I stedet blev den variabel, der refererede til den, tildelt en reference til et andet objekt. Det hukommelsesområde, der blev tildelt, da ArrayList blev erklæret, skal frigives, for eksempel ved hjælp af skraldeopsamleren .

Et eksempel på kode med en blind vej i JavaScript:

funktion func ( a , b ) { var x ; var i = 300 ; mens ( i -- ) { x = a + b ; // blind vej } }

Dette eksempel overskriver den samme lokale variabel flere gange i en loop . Mens kun værdien skrevet ved sidste iteration kan bruges i programmet efter denne løkke . Alt skrivning til x-variablen, bortset fra den sidste, er således blindgyder.

I en optimeringskompiler kan fjernelse af blindgydeposter ske ved at optimere fjernelse af død kode [1] eller ved at optimere fjernelse af blindgængerposter ( eng.  Dead Store Elimination ) [2] .

Noter

  1. HTML5 og Real World Site Performance: Seventh IE9 Platform Preview tilgængelig for udviklere (link ikke tilgængeligt) . Hentet 7. august 2021. Arkiveret fra originalen 29. januar 2013. 
  2. Michael Howard, David Leblanc Skriver sikker kode  (utilgængeligt link)