fbpx
Wikipedia

Almacenamiento muerto

En programación se conoce como almacenamiento muerto o dead store a la acción de asignarle un valor cualquiera a una variable local y no utilizarlo en ninguna instrucción subsecuente.[1]​ Este tipo de error de software es indeseable debido a que requiere tiempo de computación y accesos a memorias de forma innecesaria, lo que impacta en el rendimiento.

Existen técnicas de optimización en compiladores como por ejemplo la eliminación de código muerto que intentan encontrar y eliminar este tipo de prácticas del código fuente.[2]

Si el propósito de una variable es la intención de sobrescribir un dato, por ejemplo, cuando una contraseña se está eliminando de la memoria, las optimizaciones de almacenamiento muerto puede causar que la escritura no ocurra, provocando un problema de seguridad.[3]​ Algunos sistemas tienen librerías específicas diseñadas para evitar estas peligrosas optimizaciones. Por ejemplo explicit_bzero en OpenBSD.[4]

Ejemplo

public int sum(int a, int b){ int c = a + b; return a+b; 

En este caso la variable c se asigna pero nunca se usa (este ejemplo también puede ser tomado como código redundante ya que se devuelve el mismo valor que tiene c).

Esta optimización puede llegar a brindar buenos resultados cuando el almacenamiento muerto se encuentra ubicado dentro de bucles ya que la optimización se lleva a cabo tantas veces como grande sea el índice del bucle.

function func(a, b) { var x; var i = 300; while (i--) { x = a + b; // no se usa } } 

En este caso si se logra identificar el almacenamiento muerto y retirar se optimizaría 300 veces por cada llamada a la función.

Referencias

  1. «FindBugs Bug Descriptions». Consultado el 17 de enero de 2013. «Inglés». 
  2. «HTML5, and Real World Site Performance: Seventh IE9 Platform Preview Available for Developers» (en inglés). Consultado el 17 de enero de 2013. 
  3. «Insecure Compiler Optimization» (en inglés). Consultado el 22 de noviembre de 2016. 
  4. «OpenBSD manual pages». Consultado el 28 de noviembre de 2016. 
  •   Datos: Q3207945

almacenamiento, muerto, programación, conoce, como, almacenamiento, muerto, dead, store, acción, asignarle, valor, cualquiera, variable, local, utilizarlo, ninguna, instrucción, subsecuente, este, tipo, error, software, indeseable, debido, requiere, tiempo, co. En programacion se conoce como almacenamiento muerto o dead store a la accion de asignarle un valor cualquiera a una variable local y no utilizarlo en ninguna instruccion subsecuente 1 Este tipo de error de software es indeseable debido a que requiere tiempo de computacion y accesos a memorias de forma innecesaria lo que impacta en el rendimiento Existen tecnicas de optimizacion en compiladores como por ejemplo la eliminacion de codigo muerto que intentan encontrar y eliminar este tipo de practicas del codigo fuente 2 Si el proposito de una variable es la intencion de sobrescribir un dato por ejemplo cuando una contrasena se esta eliminando de la memoria las optimizaciones de almacenamiento muerto puede causar que la escritura no ocurra provocando un problema de seguridad 3 Algunos sistemas tienen librerias especificas disenadas para evitar estas peligrosas optimizaciones Por ejemplo explicit bzero en OpenBSD 4 Ejemplo Editarpublic int sum int a int b int c a b return a b En este caso la variable c se asigna pero nunca se usa este ejemplo tambien puede ser tomado como codigo redundante ya que se devuelve el mismo valor que tiene c Esta optimizacion puede llegar a brindar buenos resultados cuando el almacenamiento muerto se encuentra ubicado dentro de bucles ya que la optimizacion se lleva a cabo tantas veces como grande sea el indice del bucle function func a b var x var i 300 while i x a b no se usa En este caso si se logra identificar el almacenamiento muerto y retirar se optimizaria 300 veces por cada llamada a la funcion Referencias Editar FindBugs Bug Descriptions Consultado el 17 de enero de 2013 Ingles HTML5 and Real World Site Performance Seventh IE9 Platform Preview Available for Developers en ingles Consultado el 17 de enero de 2013 Insecure Compiler Optimization en ingles Consultado el 22 de noviembre de 2016 OpenBSD manual pages Consultado el 28 de noviembre de 2016 Datos Q3207945 Obtenido de https es wikipedia org w index php title Almacenamiento muerto amp oldid 140445467, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos