Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Vòng đời bộ nhớ (Memory Life Cycle) trong JavaScript


Vòng đời bộ nhớ

Gần như giống nhau mọi ngôn ngữ: 3 giai đoạn.

  1. Cấp phát (Allocation): JS tự cấp phát khi khai báo biến.
  2. Sử dụng (Use): Đọc/ghi giá trị, truyền tham số hàm.
  3. Giải phóng (Release): Khi không còn cần thiết. Khó khăn nhất: xác định "không còn cần".

1) Cấp phát trong JS

var n = 989; // number var s = 'qwerty'; // string var o = { a: 1, b: null }; // object

2) Sử dụng

Đọc/ghi biến, property, truyền argument.

3) Giải phóng

GC theo dõi cấp phát, ước lượng khi nào không còn dùng để giải phóng. Vấn đề chung "xác định bộ nhớ còn cần" là undecidable (không thể thuật toán hóa hoàn toàn). JS dùng các thuật toán như Reference-counting, Mark-and-Sweep.