Rò rỉ bộ nhớ – Wikipedia tiếng Việt

Trong khoa học máy tính, rỏ rỉ bộ nhớ (tiếng Anh: memory leak) là một dạng rỏ rỉ tài nguyên xảy ra khi một chương trình máy tính quản lý không chính xác việc cấp phát bộ nhớ[1] theo cách bộ nhớ không cần dùng nữa lại không được giải phóng. Trong lập trình hướng đối tượng, một rò rỉ bộ nhớ có thể xảy ra khi một đối tượng chứa trong bộ nhớ không thể được truy cập bởi mã đang chạy.[2] Rò rỉ bộ nhớ có dấu hiệu tương tự như các vấn đề khác và thường chỉ có thể được chẩn đoán bởi lập trình viên có quyền truy cập vào mã nguồn của chương trình.

Một rỏ rỉ không gian (space leak) xảy ra khi chương trình máy tính dùng nhiều bộ nhớ hơn mức cần thiết. Ngược lại với rỏ rỉ bộ nhớ, khi bộ nhớ rò rỉ không bao giờ được giải phóng, bộ nhớ được dùng bởi rò rỉ không gian sẽ được giải phóng nhưng chậm hơn dự kiến.[3]

Bởi vì chúng làm tiêu tốn bộ nhớ hệ thống có sẵn khi ứng dụng chạy, rỏ rỉ bộ nhớ thường là nguyên nhân hay nhân tố đóng góp vào lão hóa phần mềm (software aging).

Rỏ rỉ bộ nhớ làm giảm hiệu suất của máy tính khi giảm số lượng bộ nhớ có sẵn. Cuối cùng, trong trường hợp xấu nhất, quá nhiều bộ nhớ có sẵn bị cấp phát và khiến tất cả các hay một phần của hệ thống hay thiết bị ngừng hoạt động chính xác, ứng bị bị lỗi, hay hệ thống chậm lại rất nhiều do sự trì trệ.

Rò rỉ bộ nhớ có thể không nghiêm trọng hay thậm chí có thể được phát hiện bởi các phương tiện thông thường. Trong các hệ điều hành hiện đại, bộ nhớ thông thường được sử dụng bởi một ứng dụng sẽ được giải phóng khi tắt ứng dụng đó. Điều đó nghĩa là một rỏ rỉ bộ nhớ trong chương trình chỉ chạy trong một thời gian ngắn, có thể không được chú ý và hiếm khi nghiêm trọng.

Một ví dụ của rò rỉ bộ nhớ[sửa|sửa mã nguồn]

Ví dụ sau, được viết bằng mã giả, nhằm mục đích mục tiêu cho thấy rỏ rỉ bộ nhớ hoàn toàn có thể xảy ra như thế nào, và những hiệu ứng của nó, mà không nhu yếu kỹ năng và kiến thức lập trình. Trong trường hợp này, chương trình là một phần của ứng dụng đơn thuần được phong cách thiết kế để điều khiển và tinh chỉnh một thang máy. Phần này của chương trình được chạy bất kỳ khi nào có ai đó trong thang máy và nhấn nút để chọn lầu .

Khi nút được nhấn:
  Nhận vài bộ nhớ, dùng để nhớ số lầu
  Đặt số lầu vào trong bộ nhớ đó
  Liệu chúng ta đã ở lầu đó rồi?
    Nếu vậy, chúng ta không làm gì: kết thúc
    Ngược lại:
      Chờ đến khi thang máy rảnh rỗi
      Di chuyển đến lầu được yêu cầu
      Giải phóng bộ nhớ mà chúng ta dùng để nhớ số lầu

Rò rỉ bộ nhớ sẽ xảy ra nếu số lầu được nhu yếu chính là số lầu mà thang máy đang ở ; điều kiện kèm theo để giải phóng bộ nhớ sẽ bị bỏ lỡ. Mỗi khi trường hợp đó xảy ra, càng nhiều bộ nhớ bị rò rỉ .

Liên kết ngoài[sửa|sửa mã nguồn]

Bản mẫu : Quản lý bộ nhớ

5/5 - (1 vote)
Banner-backlink-danaseo

Bài viết liên quan

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments