У програмуванні тупико́вим за́писом (англ. 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).
Примітки
- HTML5, and Real World Site Performance: Seventh IE9 Platform Preview Available for Developers. Архів оригіналу за 29 січня 2013. Процитовано 7 серпня 2021.
- Майкл Ховард, Дэвид Лебланк Writing secure code[недоступне посилання з грудня 2019]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
U programuvanni tupiko vim za pisom angl Dead Store nazivayut prisvoyuvannya znachennya lokalnij zminnij yaksho ce znachennya ne chitayetsya zhodnoyu z nastupnih instrukcij Tupikovi zapisi zajmayut procesornij chas i pam yat ne prinosyachi niyakoyi koristi Yih mozhna viyaviti za dopomogoyu statichnogo analizu kodu Priklad kodu z tupikovim zapisom movoyu Java DeadStoreExample java import java util ArrayList import java util List public class DeadStoreExample public static void main String args List lt String gt list new ArrayList lt String gt Ce prisvoyennya ye tupikovim zapisom oskilki ArrayList nikoli ne chitayetsya list getList System out println list private static List lt String gt getList return new ArrayList lt String gt hello U comu prikladi stvoreno primirnik ob yekta ArrayList lt String gt ale vin zhodnogo razu ne vikoristovuvavsya Zamist cogo zminnij yaka posilalasya na nogo prisvoyeno posilannya na inshij ob yekt Oblast pam yati vidilenu pid chas ogoloshennya spisku ArrayList slid zvilniti napriklad za dopomogoyu pribiralnika Priklad kodu z tupikovim zapisom movoyu JavaScript function func a b var x var i 300 while i x a b tupikovij zapis U comu prikladi vikonuyetsya bagatorazovij perezapis odniyeyi i tiyeyi zh lokalnoyi zminnoyi v cikli A vikoristovuvatisya v programi pislya cogo ciklu mozhe tilki znachennya zapisane na ostannij iteraciya Takim chinom usi zapisi v zminnu x krim ostannogo ye tupikovimi V optimizuvalnomu kompilyatori vidalennyam tupikovih zapisiv mozhe zajmatisya optimizaciya vidalennya mertvogo kodu abo optimizaciya angl Dead Store Elimination PrimitkiHTML5 and Real World Site Performance Seventh IE9 Platform Preview Available for Developers Arhiv originalu za 29 sichnya 2013 Procitovano 7 serpnya 2021 Majkl Hovard Devid Leblank Writing secure code nedostupne posilannya z grudnya 2019