Umpikujaan pääsy

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 19. joulukuuta 2020 tarkistetusta versiosta . tarkastukset vaativat 2 muokkausta .

Ohjelmoinnissa umpikujatietue ( eng .  Dead Store ) on arvon määrittäminen paikalliselle muuttujalle, jos tätä arvoa ei lue mikään myöhemmistä käskyistä. Deadlock-kirjoitukset vievät suorittimen aikaa ja muistia eivätkä tee mitään. Ne voidaan löytää käyttämällä staattista koodianalyysiä .

Esimerkkikoodi, jossa on umpikujamerkintä Javassa:

// DeadStoreExample.java tuonti java.util.ArrayList ; tuonti java.util.List ; public class DeadStoreExample { public static void main ( String [] args ) { List < String > list = new ArrayList < String > (); // Tämä tehtävä on tynkä, koska ArrayList-luetteloa ei koskaan lueta. lista = getList (); Järjestelmä . ulos . println ( lista ) } yksityinen staattinen List < String > getList () { return new ArrayList < String > ( "hei" ); } }

Tässä esimerkissä ArrayList<String>-objekti instantoitiin, mutta sitä ei koskaan käytetty. Sen sijaan siihen viittaneelle muuttujalle määritettiin viittaus toiseen objektiin. ArrayList-ilmoituksen yhteydessä varattu muistialue on vapautettava esimerkiksi roskakorin avulla .

Esimerkkikoodi, jossa on JavaScriptin umpikujamerkintä:

funktio func ( a , b ) { var x ; var i = 300 ; kun taas ( i -- ) { x = a + b ; // umpikuja } }

Tämä esimerkki korvaa saman paikallismuuttujan useita kertoja silmukassa . Vaikka vain viimeisessä iteraatiossa kirjoitettua arvoa voidaan käyttää ohjelmassa tämän silmukan jälkeen . Siten kaikki kirjoitukset x-muuttujaan, paitsi viimeinen, ovat umpikujia.

Optimointikääntäjässä umpikujatietueiden poistaminen voidaan tehdä optimoimalla kuolleiden koodien poisto [1] tai optimoimalla umpikujatietueiden poisto ( eng.  Dead Store Elimination ) [2] .

Muistiinpanot

  1. HTML5 ja Real World Site Performance: Seitsemäs IE9-alustan esikatselu saatavana kehittäjille (linkki ei ole käytettävissä) . Haettu 7. elokuuta 2021. Arkistoitu alkuperäisestä 29. tammikuuta 2013. 
  2. Michael Howard, David Leblanc Suojatun koodin kirjoittaminen  (linkki ei käytettävissä)