2013-06-06 64 views

Trả lời

5

Cuối cùng, nó là chi tiết triển khai thời gian chạy. See Phoenix link

Để triển khai, để lưu trữ biến cục bộ sau khi bối cảnh bị phá hủy, triển khai dựa trên ngăn xếp không còn phù hợp nữa (vì nó mâu thuẫn với định nghĩa cấu trúc dựa trên ngăn xếp). Do đó trong trường hợp này, dữ liệu đóng của bối cảnh cha mẹ được lưu trong phân bổ bộ nhớ động (trong “đống”, nghĩa là việc triển khai dựa trên đống), bằng cách sử dụng bộ thu gom rác (GC) và đếm tham chiếu. Các hệ thống như vậy ít hiệu quả hơn tốc độ so với các hệ thống dựa trên ngăn xếp. Tuy nhiên, việc triển khai có thể luôn tối ưu hóa nó: ở giai đoạn phân tích cú pháp để tìm hiểu xem các biến miễn phí có được sử dụng trong hàm hay không và tùy thuộc vào quyết định này - để đặt dữ liệu trong ngăn xếp hoặc trong “đống”.