Dead store (original) (raw)

About DBpedia

In computer programming, a local variable that is assigned a value but is not read by any subsequent instruction is referred to as a dead store. Dead stores waste processor time and memory, and may be detected through the use of static program analysis, and removed by an optimizing compiler.

Property Value
dbo:abstract In computer programming, a local variable that is assigned a value but is not read by any subsequent instruction is referred to as a dead store. Dead stores waste processor time and memory, and may be detected through the use of static program analysis, and removed by an optimizing compiler. If the purpose of a store is intentionally to overwrite data, for example when a password is being removed from memory, dead store optimizations can cause the write not to happen, leading to a security issue. Some system libraries have specific functions designed to avoid such dangerous optimizations, e.g. explicit_bzero on OpenBSD. (en) 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.​ 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.​ 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.​ Algunos sistemas tienen librerías específicas diseñadas para evitar estas peligrosas optimizaciones. Por ejemplo explicit_bzero en OpenBSD.​ (es) У програмуванні тупико́вим за́писом (англ. Dead Store) називають присвоювання значення локальній змінній, якщо це значення не читається жодною з наступних інструкцій. Тупикові записи займають процесорний час і пам'ять, не приносячи ніякої користі. Їх можна виявити за допомогою статичного аналізу коду. Приклад коду з тупиковим записом мовою Java: // DeadStoreExample.javaimport java.util.ArrayList;import java.util.List;public class DeadStoreExample { public static void main(String[] args) { List list = new ArrayList; // Це присвоєння є тупиковим записом, оскільки ArrayList ніколи не читається. list = getList; System.out.println(list) } private static List getList { return new ArrayList("hello"); }} У цьому прикладі створено примірник об'єкта ArrayList, але він жодного разу не використовувався. Замість цього змінній, яка посилалася на нього, присвоєно посилання на інший об'єкт. Область пам'яті, виділену під час оголошення списку ArrayList, слід звільнити, наприклад, за допомогою прибиральника. Приклад коду з тупиковим записом мовою JavaScript: function func(a, b) { var x; var i = 300; while (i--) { x = a + b; // тупиковий запис }} У цьому прикладі виконується багаторазовий перезапис однієї і тієї ж локальної змінної в циклі. А використовуватися в програмі після цього циклу може тільки значення, записане на останній ітерація. Таким чином, усі записи в змінну x, крім останнього, є тупиковими. В оптимізувальному компіляторі видаленням тупикових записів може займатися оптимізація видалення мертвого коду або оптимізація (англ. Dead Store Elimination). (uk) В программировании тупиковой записью (англ. Dead Store) называется присваивание значения локальной переменной, если это значение не читается никакой из последующих инструкций. Тупиковые записи занимают процессорное время и память, не принося никакой пользы. Они могут быть обнаружены с помощью статического анализа кода. Пример кода с тупиковой записью на языке Java: // DeadStoreExample.javaimport java.util.ArrayList;import java.util.List;public class DeadStoreExample { public static void main(String[] args) { List list = new ArrayList; // Это присваивание является тупиковой записью, так как ArrayList никогда не читается. list = getList; System.out.println(list) } private static List getList { return new ArrayList("hello"); }} В этом примере был создан экземпляр объекта ArrayList, но он ни разу не использовался. Вместо этого переменной, которая ссылалась на него, была присвоена ссылка на другой объект. Область памяти, которая была выделена при объявлении списка ArrayList, должна быть освобождена, например, с помощью сборщика мусора. Пример кода с тупиковой записью на языке JavaScript: function func(a, b) { var x; var i = 300; while (i--) { x = a + b; // тупиковая запись }} В этом примере происходит многократная перезапись одной и той же локальной переменной в цикле. В то время как использоваться в программе после этого цикла может только значение, записанное на последней итерации. Таким образом, все записи в переменную x, кроме последней, являются тупиковыми. В оптимизирующем компиляторе удалением тупиковых записей может заниматься оптимизация удаления мёртвого кода либо оптимизация (англ. Dead Store Elimination). (ru)
dbo:wikiPageID 12973267 (xsd:integer)
dbo:wikiPageLength 2744 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID 1119836838 (xsd:integer)
dbo:wikiPageWikiLink dbr:Dead_code dbr:Unreachable_code dbc:Software_anomalies dbr:Computer_programming dbr:Static_program_analysis dbc:Compiler_optimizations dbr:Garbage_collection_(computer_science) dbc:Articles_with_example_Java_code dbr:Optimizing_compiler
dbp:cs1Dates ly (en)
dbp:date April 2019 (en)
dbp:wikiPageUsesTemplate dbt:Reflist dbt:Use_dmy_dates dbt:Compiler_optimizations
dct:subject dbc:Software_anomalies dbc:Compiler_optimizations dbc:Articles_with_example_Java_code
rdf:type yago:WikicatCompilerOptimizations yago:WikicatSoftwareAnomalies yago:Abnormality114501726 yago:Abstraction100002137 yago:Act100030358 yago:Action100037396 yago:Anomaly114505821 yago:Attribute100024264 yago:Change100191142 yago:ChangeOfState100199130 yago:Condition113920835 yago:Event100029378 yago:Improvement100248977 yago:Optimization100260051 yago:PhysicalCondition114034177 yago:PsychologicalFeature100023100 yago:YagoPermanentlyLocatedEntity yago:State100024720
rdfs:comment In computer programming, a local variable that is assigned a value but is not read by any subsequent instruction is referred to as a dead store. Dead stores waste processor time and memory, and may be detected through the use of static program analysis, and removed by an optimizing compiler. (en) 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.​ 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.​ (es) В программировании тупиковой записью (англ. Dead Store) называется присваивание значения локальной переменной, если это значение не читается никакой из последующих инструкций. Тупиковые записи занимают процессорное время и память, не принося никакой пользы. Они могут быть обнаружены с помощью статического анализа кода. Пример кода с тупиковой записью на языке Java: Пример кода с тупиковой записью на языке JavaScript: function func(a, b) { var x; var i = 300; while (i--) { x = a + b; // тупиковая запись }} (ru) У програмуванні тупико́вим за́писом (англ. Dead Store) називають присвоювання значення локальній змінній, якщо це значення не читається жодною з наступних інструкцій. Тупикові записи займають процесорний час і пам'ять, не приносячи ніякої користі. Їх можна виявити за допомогою статичного аналізу коду. Приклад коду з тупиковим записом мовою Java: Приклад коду з тупиковим записом мовою JavaScript: function func(a, b) { var x; var i = 300; while (i--) { x = a + b; // тупиковий запис }} (uk)
rdfs:label Almacenamiento muerto (es) Dead store (en) Тупиковая запись (ru) Тупиковий запис (uk)
owl:sameAs freebase:Dead store yago-res:Dead store wikidata:Dead store dbpedia-es:Dead store dbpedia-ru:Dead store dbpedia-uk:Dead store https://global.dbpedia.org/id/2xiWr
prov:wasDerivedFrom wikipedia-en:Dead_store?oldid=1119836838&ns=0
foaf:isPrimaryTopicOf wikipedia-en:Dead_store
is dbo:wikiPageRedirects of dbr:Dead_assignment dbr:Dead_store_elimination dbr:Dead_variable dbr:Dead_store_optimization dbr:Explicit_bzero
is dbo:wikiPageWikiLink of dbr:Dead_code dbr:Dead_assignment dbr:Dead_store_elimination dbr:Dead_variable dbr:Optimizing_compiler dbr:Dead_store_optimization dbr:Explicit_bzero
is foaf:primaryTopic of wikipedia-en:Dead_store