Tienda muerta


En la programación de computadoras , una variable local a la que se le asigna un valor pero que no es leída por ninguna instrucción posterior se denomina almacenamiento muerto . Los almacenes muertos desperdician tiempo de procesador y memoria, y pueden detectarse mediante el uso de análisis de programas estáticos y eliminarse mediante un compilador de optimización .

Si el propósito de una tienda es sobrescribir intencionalmente los datos, por ejemplo, cuando se elimina una contraseña de la memoria, las optimizaciones de la tienda muertas pueden hacer que la escritura no ocurra, lo que genera un problema de seguridad. [1] Algunas bibliotecas del sistema tienen funciones específicas diseñadas para evitar optimizaciones tan peligrosas, por ejemplo, explicit_bzeroen OpenBSD. [2]

En el código anterior, ArrayList<String>se creó una instancia de un objeto, pero nunca se usó. En cambio, en la siguiente línea, la variable que hace referencia a ella está configurada para apuntar a un objeto diferente. El ArrayListque se creó cuando listse declaró ahora deberá ser desasignado, por ejemplo, por un recolector de basura .

"El código en el bucle sobrescribe repetidamente la misma variable, por lo que se puede reducir a una sola llamada". [3]