Тупиковая статья
- 1 year ago
- 0
- 0
В программировании тупиковой записью ( англ. Dead Store ) называется присваивание значения локальной переменной, если это значение не читается никакой из последующих инструкций. Тупиковые записи занимают процессорное время и память, не принося никакой пользы. Они могут быть обнаружены с помощью статического анализа кода .
Пример кода с тупиковой записью на языке 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>(); // Это присваивание является тупиковой записью, так как ArrayList никогда не читается.
list = getList();
System.out.println(list)
}
private static List<String> getList() {
return new ArrayList<String>("hello");
}
}
В этом примере был создан экземпляр объекта ArrayList<String>, но он ни разу не использовался. Вместо этого переменной, которая ссылалась на него, была присвоена ссылка на другой объект. Область памяти, которая была выделена при объявлении списка ArrayList, должна быть освобождена, например, с помощью сборщика мусора .
Пример кода с тупиковой записью на языке JavaScript:
function func(a, b) {
var x;
var i = 300;
while (i--) {
x = a + b; // тупиковая запись
}
}
В этом примере происходит многократная перезапись одной и той же локальной переменной в цикле . В то время как использоваться в программе после этого цикла может только значение, записанное на последней итерации . Таким образом, все записи в переменную x, кроме последней, являются тупиковыми.
В оптимизирующем компиляторе удалением тупиковых записей может заниматься оптимизация удаления мёртвого кода либо оптимизация ( англ. Dead Store Elimination ) .