Dead store là gì?

Noun Algorithm

Trong lập trình (programming), một biến cục bộ (local variable) được gán (assign) một giá trị (value) nhưng không được đọc bởi bất kỳ lệnh (instruction) tiếp theo nào được gọi là một dead store. Dead store làm lãng phí thời gian xử lý (processor time) và bộ nhớ (memory). Nó có thể được phát hiện thông qua việc sử dụng phân tích chương trình tĩnh (static program analysis) và loại bỏ bằng trình trình biên dịch tối ưu hóa (optimizing compiler).

Nếu mục đích của dead store là cố ý ghi đè (overwrite) dữ liệu, chẳng hạn như khi mật khẩu đang bị xóa khỏi bộ nhớ, thì việc tối ưu hóa dead store (dead store optimization) có thể khiến việc ghi không diễn ra, dẫn đến vấn đề bảo mật (security).


// DeadStoreExample.java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class DeadStoreExample {
    public static void main(String[] args) {
        List list = new ArrayList(); // This is a Dead Store, as the ArrayList is never read. 
        list = getList();
        System.out.println(list);
    }

    private static List getList() {
        return new ArrayList(Arrays.asList("Hello"));
    }
}


Trong đoạn mã trên, đối tượng (object) ArrayList đã được khởi tạo (instantiate) nhưng chưa bao giờ được sử dụng. Thay vào đó, trong dòng tiếp theo, biến tham chiếu đến nó trỏ đến một đối tượng khác. ArrayList được tạo khi danh sách được khai báo giờ đây sẽ cần được hủy cấp phát (deallocate), ví dụ như bởi một trình thu gom rác (garbage collector).

Learning English Everyday