bộ nhớ

Chương trình chạy thì dữ liệu phải nằm ở đâu đó. Ba chặng, đi từ biết nó nằm ở đâu tới hiểu vì sao đôi khi nó không chịu biến mất.

9 cột mốc · 5 có bài trong app

Bắt đầu
  1. 1Dữ liệu nằm ở đâu

  2. 2Khi dữ liệu đi vào hàm

    Đoán đúng lúc nào hàm sửa được thứ bên ngoài, lúc nào không.

  3. 3Khi bộ nhớ không đủ

    Nhận ra ba kiểu hỏng có gốc từ bộ nhớ.

    • Stack overflowtự tìm hiểuĐệ quy không có điểm dừng: khung chồng lên khung cho tới hết chỗ.
    • Rò rỉ bộ nhớtự tìm hiểuVẫn còn một mũi tên trỏ tới thứ bạn tưởng đã bỏ, nên bộ dọn rác không dám đụng vào.
    • Dữ liệu quá lớntự tìm hiểuĐọc cả file 2GB vào một biến, thay vì đọc từng phần một.
Đích

Lộ trình dừng ở đây

Ba chặng trên đủ để đọc hiểu phần lớn lỗi liên quan tới bộ nhớ. Phần dưới là hướng đi sâu hơn.

  • Profiler bộ nhớCông cụ chỉ thẳng ra thứ gì đang chiếm chỗ và ai còn trỏ tới nó.
  • WeakMap · weak referenceCách giữ một tham chiếu mà không ngăn bộ dọn rác làm việc.
  • Dữ liệu bất biếnKhông sửa tại chỗ nữa — đổi lại là mất hẳn một lớp lỗi.
  • Đọc theo luồngXử lý dữ liệu lớn từng khúc, thay vì nạp hết vào bộ nhớ.