Almacenamiento muerto

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

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]

Ejemplo[editar]

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[editar]

  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.